whychdw
2022-01-20 93b89fbc5caa31524912d8752ba25ecaca4e86c6
内容提交
1个文件已添加
8个文件已修改
169 ■■■■■ 已修改文件
package-lock.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/apis/aio/realtime.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/apis/dateTest/historyAio.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/apis/login/index.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/common/AES.js 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataTest/dialogs/endoscopeImage.vue 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataTest/realTimeAio.vue 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/userMager/addEdit.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package-lock.json
@@ -4424,6 +4424,12 @@
        "randomfill": "^1.0.3"
      }
    },
    "crypto-js": {
      "version": "4.1.1",
      "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz",
      "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==",
      "dev": true
    },
    "css": {
      "version": "2.2.4",
      "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
package.json
@@ -45,6 +45,7 @@
    "@vue/cli-plugin-eslint": "^3.1.1",
    "@vue/cli-service": "^3.12.1",
    "babel-eslint": "^10.1.0",
    "crypto-js": "^4.1.1",
    "eslint": "^6.7.2",
    "eslint-plugin-vue": "^6.2.2",
    "less": "^3.12.2",
src/assets/js/apis/aio/realtime.js
@@ -106,4 +106,15 @@
            ,data: 'json=' + JSON.stringify(data)
        });
    }
    ,changeDataSource(id, num) {
      return axios({
        method: 'POST'
        ,url: 'Fbs9100_setparamAction_action_SetNowBatt'
        ,data: 'json=' + JSON.stringify({
          op_cmd: 186,
          dev_id: id,
          BattGroupNum: num
        })
      });
    }
}
src/assets/js/apis/dateTest/historyAio.js
@@ -127,7 +127,7 @@
    startShowPicture(devId) {
        return axios({
            method: "POST",
            url: 'Fgcd_filedownloadAction_action_readA059Pictrue',
            url: 'Fbs9100_setparamAction_action_StartOrStopShowPic',
            data: "json="+JSON.stringify({
                op_cmd: 188,
                dev_id: devId,
@@ -143,7 +143,7 @@
    stopShowPicture(devId) {
        return axios({
            method: "POST",
            url: 'Fgcd_filedownloadAction_action_readA059Pictrue',
            url: 'Fbs9100_setparamAction_action_StartOrStopShowPic',
            data: "json="+JSON.stringify({
                op_cmd: 190,
                dev_id: devId,
src/assets/js/apis/login/index.js
@@ -1,5 +1,6 @@
import axios from 'axios'
import md5 from "js-md5";
import AES from "@/common/AES";
export default {
    checkNetwork() {
        return axios({
@@ -29,7 +30,7 @@
        return axios({
            method: 'post',
            url: 'User_infAction!updatePassword',
            data: "uif.USnId="+ pwd,
            data: "uif.USnId="+ AES.encrypt(pwd),
        });
    },
    updateUserPwd2(name, oldPwd, newPwd) {
@@ -40,7 +41,7 @@
                UName: name,
                Upassword: md5(oldPwd),
                UNote: md5(newPwd),
                USnId: newPwd,
                USnId: AES.encrypt(newPwd),
            }),
        });
    },
src/common/AES.js
New file
@@ -0,0 +1,26 @@
import CryptoJS from "crypto-js";
export default {
  /**
   * 加密
   * @param word 需要加密的字符串
   * @returns {*} 加密后的结果
   */
  encrypt(word) {
    let key = CryptoJS.enc.Latin1.parse("www.whyctech.com");
    let iv = CryptoJS.enc.Latin1.parse("eoaocsdafeaeoaol");
    let srcs = CryptoJS.enc.Latin1.parse(word);
    return CryptoJS.AES.encrypt(srcs, key, {iv:iv, mode:CryptoJS.mode.CBC, padding:CryptoJS.pad.ZeroPadding}).toString();
  },
  /**
   * 解密
   * @param word 需要解密的字符串
   * @returns {*} 解密后的结果
   */
  decrypt(word) {
    let key = CryptoJS.enc.Latin1.parse("www.whyctech.com");
    let iv = CryptoJS.enc.Latin1.parse("eoaocsdafeaeoaol");
    let decrypt = CryptoJS.AES.decrypt(word, key, {iv:iv,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.ZeroPadding});
    return CryptoJS.enc.Latin1.stringify(decrypt).toString();
  }
}
src/pages/dataTest/dialogs/endoscopeImage.vue
@@ -15,9 +15,10 @@
      </el-carousel>
    </div>
    <div class="endoscope-image-footer">
      <el-button type="success" size="small" @click="startShowPicture">启动更新</el-button>
      <el-button type="danger" size="small" @click="stopShowPicture">停止更新</el-button>
      <el-button type="primary" size="small" @click="searchPicture">刷新</el-button>
      {{stateInfo.message}}
      <el-button type="success" size="small" :disabled="stateInfo.disabledStart" @click="startShowPicture">启动更新</el-button>
      <el-button type="danger" size="small" :disabled="stateInfo.disabledStop" @click="stopShowPicture">停止更新</el-button>
      <el-button type="primary" size="small" :disabled="stateInfo.disabledFlush" @click="searchPicture">刷新</el-button>
    </div>
  </div>
</template>
@@ -32,6 +33,10 @@
    devId: {
      type: [String, Number],
      default: 805900001
    },
    state: {
      type: Number,
      default: -1
    },
  },
  data() {
@@ -114,8 +119,36 @@
  computed: {
    imagesList() {
      return this.images.map(item=>{
        return getWebUrl()+"A059/images/"+this.devId+"/"+item;
        return getWebUrl()+"A059/images/"+this.devId+"/"+item+"?t="+new Date().getTime();
      });
    },
    stateInfo() {
      let num = this.state;
      let info = {
        disabledStart: true,
        disabledStop: true,
        disabledFlush: true,
        message: "通讯异常"
      };
      switch(num) {
        case 0:
          info = {
            disabledStart: false,
            disabledStop: true,
            disabledFlush: false,
            message: "图片停止更新"
          };
          break;
        case 1:
          info = {
            disabledStart: true,
            disabledStop: false,
            disabledFlush: false,
            message: "图片更新中..."
          };
          break;
      }
      return info;
    }
  },
  mounted() {
src/pages/dataTest/realTimeAio.vue
@@ -67,6 +67,12 @@
                </div>
                <div class="page-content">
                    <div class="page-content-tools" v-if="control.show && isCanTest">
                      <el-cascader
                        v-model="dataSource.value"
                        size="mini"
                        :disabled="esState==-1"
                        :options="dataSource.options"
                        @change="changeDataSource"></el-cascader>
                        <el-popover placement="bottom" trigger="hover">
                            <div class="hdw-menu-list">
                                <ul>
@@ -197,7 +203,7 @@
<!--        </el-dialog>-->
        <el-dialog title="内窥镜" width="960px" :visible.sync="videoDialog.show" :close-on-click-modal="false"
                   top="0" class="dialog-center" :modal-append-to-body="false">
          <endoscope-image v-if="videoDialog.show" :dev-id="batt.FBSDeviceId"></endoscope-image>
          <endoscope-image v-if="videoDialog.show" :dev-id="batt.FBSDeviceId" :state="esState"></endoscope-image>
        </el-dialog>
        <!-- 停电放电确认 -->
        <el-dialog :title="confirmDialog.title" width="480px" :visible.sync="confirmDialog.show" :close-on-click-modal="false"
@@ -323,6 +329,7 @@
            stateList: stateList,
            esVideoDialog: false,
            esVideoSn: "",
            esState: -1,  // -1通讯故障, 0停止显示 1开始显示
            // k4状态
            main: false,
            confirmBtnShow: 0,
@@ -435,7 +442,30 @@
            // 储能状态
            isCharge: true,
            count: 0,
            flag: false
            flag: false,
            dataSource: {
              value: ["source", 0],
              options: [
                {
                  value: 'source',
                  label: '数据来源',
                  children: [
                    {
                      value: 0,
                      label: "未设置"
                    },
                    {
                      value: 1,
                      label: "电池组1"
                    },
                    {
                      value: 2,
                      label: "电池组2"
                    },
                  ]
                }
              ],
            },
        }
    },
    computed: {
@@ -810,6 +840,10 @@
                let isOutTime = true; //通讯中断        判断设备是否通讯中断    true:中断    false:正常
                if (rs.code == 1) {
                    let data = rs.data[0];
                    // 设置内窥镜图片更新状态
                    this.esState = data.dev_station_poff_cnt;
                    // 设置数据来源
                    this.$set(this.dataSource, 'value', ['source', data.dev_onlinevollow]);
                    // 烟感报警 > 0为报警状态
                    // this.stateList[4].value = data.dev_temp > 0 ? 1 : 0;
                    this.setStateList('alarm', data.dev_temp > 0 ? 1 : 0);
@@ -875,6 +909,8 @@
            this.setStateList("workState", "未连接");
            this.diagram.desc = '设备未连接';
            this.main = false;
            // 设置内窥镜图片更新状态
            this.esState = -1;
        },
        // 基础信息
        setEquipBase(data) {
@@ -1182,6 +1218,31 @@
        resetState () {
            this.count = 0;
            this.isCharge = true;
        },
        changeDataSource() {
          let batt = this.batt;
          let num = this.dataSource.value[1];
          this.timer.stop();
          let loading = this.$layer.loading();
          this.$apis.aio.realtime.changeDataSource(batt.FBSDeviceId, num).then(res=>{
            this.$layer.close(loading);
            let rs = JSON.parse(res.data.result);
            let timeLong = 4000;
            if(rs.code == 1) {
              this.$layer.msg("切换电池组成功");
            }else {
              this.$layer.msg("切换电池组失败");
              timeLong = 0;
            }
            setTimeout(()=>{
              this.startTimer();
            }, timeLong);
          }).catch(error=>{
            this.$layer.close(loading);
            this.startTimer();
            this.$layer.msg("切换电池组失败");
          });
        }
    },
    mounted() {
@@ -1204,6 +1265,7 @@
        this.timer2.open();
    },
    beforeDestroy () {
      this.timer.stop();
        this.timer2.stop();
        stop();
    }
@@ -1484,4 +1546,8 @@
        /* color: #ffe329aa; */
    }
}
.data-source {
  font-size: 14px;
  cursor: pointer;
}
</style>
src/pages/userMager/addEdit.vue
@@ -227,6 +227,8 @@
<script>
import { searchProvince } from "../../assets/js/api";
import const_user from "@/assets/js/const/const_user";
import AES from "@/common/AES";
export default {
  // name:'addEdit',
  props: ["status", "opt", "index", "seft"],
@@ -411,7 +413,8 @@
    // 新增用户
    addUser(data) {
      let vm = this;
      data.USnId = data.Upassword;
      data.USnId = AES.encrypt(data.Upassword);
      data.Upassword = data.USnId;
      if(data.type == 1) {
        data.expirationTime = null;
      }else {