whyczyk
2022-02-25 ab09c93131ecb1b0c3afdb5a351a02d10d697546
实时数据表格对接
9个文件已修改
4个文件已添加
850 ■■■■ 已修改文件
package-lock.json 225 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
postcss.config.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/const/const_page.js 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/tools/getItemByKey.js 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/login/js/api.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/login/login.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/monitoring/js/api.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/monitoring/js/getTblHeader.js 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/monitoring/real-monitoring.vue 233 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/index.js 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/modules/user.js 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package-lock.json
@@ -1703,6 +1703,16 @@
          "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
          "dev": true
        },
        "ansi-styles": {
          "version": "4.3.0",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
          "dev": true,
          "optional": true,
          "requires": {
            "color-convert": "^2.0.1"
          }
        },
        "cacache": {
          "version": "13.0.1",
          "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz?cache=0&sync_timestamp=1594429684526&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-13.0.1.tgz",
@@ -1729,6 +1739,53 @@
            "unique-filename": "^1.1.1"
          }
        },
        "chalk": {
          "version": "4.1.2",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
          "dev": true,
          "optional": true,
          "requires": {
            "ansi-styles": "^4.1.0",
            "supports-color": "^7.1.0"
          }
        },
        "color-convert": {
          "version": "2.0.1",
          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
          "dev": true,
          "optional": true,
          "requires": {
            "color-name": "~1.1.4"
          }
        },
        "color-name": {
          "version": "1.1.4",
          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
          "dev": true,
          "optional": true
        },
        "has-flag": {
          "version": "4.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
          "dev": true,
          "optional": true
        },
        "loader-utils": {
          "version": "2.0.2",
          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz",
          "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==",
          "dev": true,
          "optional": true,
          "requires": {
            "big.js": "^5.2.2",
            "emojis-list": "^3.0.0",
            "json5": "^2.1.2"
          }
        },
        "source-map": {
          "version": "0.6.1",
          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
@@ -1743,6 +1800,16 @@
          "requires": {
            "figgy-pudding": "^3.5.1",
            "minipass": "^3.1.1"
          }
        },
        "supports-color": {
          "version": "7.2.0",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
          "dev": true,
          "optional": true,
          "requires": {
            "has-flag": "^4.0.0"
          }
        },
        "terser-webpack-plugin": {
@@ -1760,6 +1827,18 @@
            "source-map": "^0.6.1",
            "terser": "^4.6.12",
            "webpack-sources": "^1.4.3"
          }
        },
        "vue-loader-v16": {
          "version": "npm:vue-loader@16.8.3",
          "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
          "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
          "dev": true,
          "optional": true,
          "requires": {
            "chalk": "^4.1.0",
            "hash-sum": "^2.0.0",
            "loader-utils": "^2.0.0"
          }
        }
      }
@@ -2305,6 +2384,14 @@
      "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=",
      "dev": true
    },
    "async-validator": {
      "version": "1.8.5",
      "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz",
      "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==",
      "requires": {
        "babel-runtime": "6.x"
      }
    },
    "asynckit": {
      "version": "0.4.0",
      "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz",
@@ -2375,6 +2462,11 @@
        }
      }
    },
    "babel-helper-vue-jsx-merge-props": {
      "version": "2.0.3",
      "resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
      "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg=="
    },
    "babel-loader": {
      "version": "8.2.2",
      "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.2.2.tgz?cache=0&sync_timestamp=1606424705083&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.2.2.tgz",
@@ -2394,6 +2486,27 @@
      "dev": true,
      "requires": {
        "object.assign": "^4.1.0"
      }
    },
    "babel-runtime": {
      "version": "6.26.0",
      "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
      "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
      "requires": {
        "core-js": "^2.4.0",
        "regenerator-runtime": "^0.11.0"
      },
      "dependencies": {
        "core-js": {
          "version": "2.6.12",
          "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
          "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
        },
        "regenerator-runtime": {
          "version": "0.11.1",
          "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
          "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
        }
      }
    },
    "balanced-match": {
@@ -3988,8 +4101,7 @@
    "deepmerge": {
      "version": "1.5.2",
      "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz",
      "integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M=",
      "dev": true
      "integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M="
    },
    "default-gateway": {
      "version": "5.0.5",
@@ -4434,6 +4546,19 @@
      "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.620.tgz",
      "integrity": "sha1-xvNqfjmKzJ19EnQ6b1jVNvvFhwA=",
      "dev": true
    },
    "element-ui": {
      "version": "2.15.6",
      "resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.6.tgz",
      "integrity": "sha512-rcYXEKd/j2G0AgficAOk1Zd1AsnHRkhmrK4yLHmNOiimU2JfsywgfKUjMoFuT6pQx0luhovj8lFjpE4Fnt58Iw==",
      "requires": {
        "async-validator": "~1.8.1",
        "babel-helper-vue-jsx-merge-props": "^2.0.0",
        "deepmerge": "^1.2.0",
        "normalize-wheel": "^1.0.1",
        "resize-observer-polyfill": "^1.5.0",
        "throttle-debounce": "^1.0.1"
      }
    },
    "elliptic": {
      "version": "6.5.3",
@@ -7056,6 +7181,11 @@
      "integrity": "sha1-suHE3E98bVd0PfczpPWXjRhlBVk=",
      "dev": true
    },
    "normalize-wheel": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
      "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU="
    },
    "npm-run-path": {
      "version": "2.0.2",
      "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz",
@@ -8667,6 +8797,11 @@
      "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
      "dev": true
    },
    "resize-observer-polyfill": {
      "version": "1.5.1",
      "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
      "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
    },
    "resolve": {
      "version": "1.19.0",
      "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.19.0.tgz",
@@ -9770,6 +9905,11 @@
        "neo-async": "^2.6.0"
      }
    },
    "throttle-debounce": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz",
      "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg=="
    },
    "through2": {
      "version": "2.0.5",
      "resolved": "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz?cache=0&sync_timestamp=1593478693312&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrough2%2Fdownload%2Fthrough2-2.0.5.tgz",
@@ -10321,87 +10461,6 @@
          "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz",
          "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
          "dev": true
        }
      }
    },
    "vue-loader-v16": {
      "version": "npm:vue-loader@16.8.3",
      "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
      "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
      "dev": true,
      "optional": true,
      "requires": {
        "chalk": "^4.1.0",
        "hash-sum": "^2.0.0",
        "loader-utils": "^2.0.0"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "4.3.0",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
          "dev": true,
          "optional": true,
          "requires": {
            "color-convert": "^2.0.1"
          }
        },
        "chalk": {
          "version": "4.1.2",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
          "dev": true,
          "optional": true,
          "requires": {
            "ansi-styles": "^4.1.0",
            "supports-color": "^7.1.0"
          }
        },
        "color-convert": {
          "version": "2.0.1",
          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
          "dev": true,
          "optional": true,
          "requires": {
            "color-name": "~1.1.4"
          }
        },
        "color-name": {
          "version": "1.1.4",
          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
          "dev": true,
          "optional": true
        },
        "has-flag": {
          "version": "4.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
          "dev": true,
          "optional": true
        },
        "loader-utils": {
          "version": "2.0.2",
          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz",
          "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==",
          "dev": true,
          "optional": true,
          "requires": {
            "big.js": "^5.2.2",
            "emojis-list": "^3.0.0",
            "json5": "^2.1.2"
          }
        },
        "supports-color": {
          "version": "7.2.0",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
          "dev": true,
          "optional": true,
          "requires": {
            "has-flag": "^4.0.0"
          }
        }
      }
    },
package.json
@@ -14,7 +14,8 @@
    "vant": "^2.12.44",
    "vue": "^2.6.11",
    "vue-router": "^3.2.0",
    "vuex": "^3.4.0"
    "vuex": "^3.4.0",
    "element-ui": "^2.13.2"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "~4.5.0",
postcss.config.js
@@ -15,7 +15,7 @@
                propList: ["*"],
                viewportUnit: "vw", //指定需要转换成的视窗单位,建议使用vw
                fontViewportUnit: "vw", //字体使用的视口单位
                selectorBlackList: ['.ignore'], // 指定不转换为视窗单位的类,可以自定义,可以无限添加,建议定义一至两个通用的类名
                selectorBlackList: ['.ignore', '.el-'], // 指定不转换为视窗单位的类,可以自定义,可以无限添加,建议定义一至两个通用的类名
                minPixelValue: 1, // 小于或等于`1px`不转换为视窗单位,你也可以设置为你想要的值
                mediaQuery: true, // 允许在媒体查询中转换`px`
                exclude: [],
src/assets/js/const/const_page.js
New file
@@ -0,0 +1,134 @@
export default {
  realTime: [
    {
      key: "eleLine",
      type: 1,
      label: "电路拓扑图",
      show: 1,
    },
    {
      key: "vol",
      type: 1,
      label: "电压",
      show: 1,
    },
    {
      key: "res",
      type: 1,
      label: "内阻",
      show: 1,
    },
    {
      key: "temp",
      type: 1,
      label: "温度",
      show: 1,
    },
    {
      key: "conduct",
      type: 1,
      label: "电导",
      show: 1,
    },
    {
      key: "monConnRes",
      type: 1,
      label: "链接条阻值",
      show: 1,
    },
    {
      key: "curr",
      type: 1,
      label: "均衡电流",
      show: 1,
    },
    {
      key: "leakVol",
      type: 1,
      label: "漏液电压",
      show: 1,
    },
    {
      key: "tblData",
      type: 1,
      label: "数据表格",
      show: 1,
    },
    {
      key: "dianchigaojing",
      type: 1,
      label: "电池告警",
      show: 1,
    },
    {
      key: "niBianInfoTab",
      type: 1,
      label: "逆变信息",
      show: 1,
    },
    {
      key: "jggdInfoTab",
      type: 1,
      label: "均衡供电",
      show: 1,
    },
    {
      key: "elePrice",
      type: 1,
      label: "电价统计分析",
      show: 1,
    },
    {
      key: "bmsInfo",
      type: 1,
      label: "BMS信息",
      show: 1
    },
  ],
  eleMonomer() {
    return [
      {
        key: "vol",
        type: 2,
        label: "电压",
        show: 1,
        value: 2,
      },
      {
        key: "conduct",
        type: 2,
        label: "电导",
        show: 1,
        value: 3,
      },
      {
        key: "conductPercent",
        type: 2,
        label: "电导百分比",
        show: 1,
        value: 4,
      },
      {
        key: "res",
        type: 2,
        label: "内阻",
        show: 1,
        value: 5,
      },
      {
        key: "temp",
        type: 2,
        label: "温度",
        show: 1,
        value: 6,
      },
      {
        key: "link",
        type: 2,
        label: "连接条阻抗",
        show: 1,
        value: 7,
      },
    ];
  },
};
src/assets/js/tools/getItemByKey.js
New file
@@ -0,0 +1,13 @@
function getItemByKey(key, list) {
    let result = 0;
    for(let i=0; i<list.length; i++) {
        let item = list[i];
        if(item.key == key) {
            result = item;
            break;
        }
    }
    return result;
}
export default getItemByKey;
src/main.js
@@ -54,6 +54,13 @@
import G from './global'
import "./global/common"
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI, {
  zIndex: 99
});
Vue.config.productionTip = false
Vue.use(Toast).use(Notify).use(Picker).use(Form).use(Image).use(Dialog).use(Tabbar).use(TabbarItem).use(CellGroup).use(Cell).use(Icon).use(Button).use(NavBar).use(Grid).use(GridItem).use(Row).use(Col).use(Collapse).use(CollapseItem).use(Steps).use(Step).use(Divider).use(Switch).use(Tag).use(Search).use(Field).use(Uploader).use(Popup).use(CheckboxGroup).use(Checkbox).use(PullRefresh).use(ActionSheet).use(List).use(Tab).use(Tabs).use(Empty).use(ImagePreview).use(IndexBar).use(IndexAnchor).use(SwipeCell).use(Cascader).use(TreeSelect).use(DatetimePicker);
src/pages/login/js/api.js
@@ -28,4 +28,16 @@
        url: 'PageParamAction!findByCategoryId',
        data: 'json=' + JSON.stringify({ categoryId: 5 })
    })
}
//查询系统名称
export const getRealTabsConfig = (type) => {
    type = type ? type : 1;
    return axios({
        method: 'post',
        url: 'PageParamUserAction!getAll',
        data: "json=" + JSON.stringify({
            type,
        })
    })
}
src/pages/login/login.vue
@@ -22,11 +22,9 @@
import {
    login,
    searchPlatformName,
    getLoginVerity
    getLoginVerity,
    getRealTabsConfig
} from "@/pages/login/js/api";
import {
    mapMutations,
} from 'vuex';
export default {
    data() {
        return {
@@ -41,7 +39,6 @@
        this.searchPlatformName();
    },
    methods: {
        ...mapMutations(['setUserPower']),
        searchPlatformName() {
            searchPlatformName()
                .then((res) => {
@@ -79,6 +76,7 @@
                // 对结果进行处理
                self.handleLogin(res)
            }).catch(error => {
                console.log(error)
                // 关闭等待
                // console.log(error);
                self.$toast("网络异常");
@@ -98,23 +96,32 @@
        },
        // 登录验证
        handleLogin(res) {
            let self = this;
            // 关闭等待
            // this.loading = false;
            let rs = JSON.parse(res.data.result);
            if (rs.code == 1) {
                self.$toast("登录成功!");
                sessionStorage.setItem('username', self.username);
                sessionStorage.setItem('userId', rs.data);
                self.setUserPower(rs.data2);
                self.$router.push({
                    path: '/menu'
                })
                sessionStorage.setItem('username', this.username);
                this.$store.dispatch("user/login", rs);
                this.initPageConfig()
            } else {
                this.changeVerifyCode();
                self.$toast(rs.msg);
                this.$toast(rs.msg);
            }
        },
        initPageConfig() {
            getRealTabsConfig().then(res => {
                let rs = JSON.parse(res.data.result);
                // 设置pageConfig
                this.$store.dispatch('user/changeRealTabsConfig', rs.data);
                this.$toast("登录成功!");
                this.$router.push({
                    path: '/menu'
                })
            }).catch(error => {
                // 设置pageConfig
                this.$store.dispatch('user/changeRealTabsConfig', []);
            })
        },
    }
}
</script>
src/pages/monitoring/js/api.js
@@ -194,3 +194,11 @@
        data: 'json=' + JSON.stringify(data)
    });
}
export const realTimeLd9Data = (params) => {
    return axios({
        method: "post",
        url: "LD9_stateAction_ld9action_searchByDevId",
        data: "json=" + JSON.stringify(params)
    })
}
src/pages/monitoring/js/getTblHeader.js
New file
@@ -0,0 +1,105 @@
import regEquipType from "@/assets/units/function/regEquipType";
function getTblHeader(dev_id) {
    let headers = [
        {
            prop: "num1",
            label: "单体编号",
            width: "",
            key1: "",
            fixed: 'left',
        },
        {
            prop: "vol1",
            label: "电压(V)",
            width: "",
            key1: "vol",
        },
        {
            prop: "res1",
            label: "内阻(mΩ)",
            width: "",
            key1: "res",
        },
        {
            prop: "temp1",
            label: "温度(℃)",
            width: "",
            key1: "temp",
        },
        {
            prop: "conduct1",
            label: "电导",
            width: "",
            key1: "conduct",
        },
        {
            prop: "monConnRes",
            label: "链接条阻值",
            width: "",
            key1: "monConnRes",
        },
        {
            prop: "curr1",
            label: "均衡电流(A)",
            width: "",
            key1: "curr",
        },
        {
            prop: "leakVol1",
            label: "漏液电压(V)",
            width: "",
            key1: "leakVol",
        },
        {
            prop: "monCap",
            label: "实际容量(AH)",
            width: "",
            key1: "monCap",
            type: "LD9",
        },
        {
            prop: "monTestCap",
            label: "测试容量(AH)",
            width: "",
            key1: "monTestCap",
            type: "LD9",
        },
        {
            prop: "monResCap",
            label: "剩余容量(AH)",
            width: "",
            key1: "monResCap",
            type: "LD9",
        },
        {
            prop: "monDisTimeLong",
            label: "放电可持续时长",
            width: "",
            key1: "monDisTimeLong",
            type: "LD9",
        },
    ];
    // 判断是否为锂电池
    if (regEquipType(dev_id, ["lithium"])) {
        headers = [
            {
                prop: "num1",
                label: "单体编号",
                width: "",
            },
            {
                prop: "vol1",
                label: "电压(V)",
                width: "",
            },
            {
                prop: "temp1",
                label: "温度(℃)",
                width: "",
            },
        ];
    }
    return headers;
}
export default getTblHeader;
src/pages/monitoring/real-monitoring.vue
@@ -100,35 +100,11 @@
            </div>
            <div class="card">
                <div class="commonTitle cardTitle">均衡供电</div>
                <div class="commonTitle cardTitle">数据表格</div>
                <div class="listCon">
                    <div class="item">
                        {{otherTable[0].value}}
                        <div class="title">
                            版本号
                        </div>
                    </div>
                    <div class="item">
                        {{otherTable[1].value}}℃
                        <div class="title">
                            温度(℃)
                        </div>
                    </div>
                    <div class="item">
                        {{eleTable[0].value}}A
                        <div class="title">
                            总电流(A)
                        </div>
                    </div>
                    <div class="item">
                        {{totolTable[0].value}}V
                        <div class="title">
                            总电压(V)
                        </div>
                    </div>
                </div>
                <div class="chartWarp">
                    <progress-block-vertical-bar ref="outputVolList"></progress-block-vertical-bar>
                    <el-table stripe size="small" :data="table.datas" height="100%" :row-class-name="setTableRowClass">
                        <el-table-column v-for="header in dataHeaders" :key="header.prop" :prop="header.prop" :label="header.label" :width="header.width" align="center" :fixed="header.fixed"></el-table-column>
                    </el-table>
                </div>
            </div>
@@ -149,14 +125,16 @@
    realTimeSearch,
    realTimeGroup,
    JhStateActionSerchByCondition,
    realTimeLd9Data,
} from "@/pages/monitoring/js/api"
import BarChart from "@/components/chart/BarChart";
import progressBlockVerticalBar from "@/components/chart/progress-block-vertical-bar";
import getMarkLineData from "@/components/chart/js/getMarkLineData";
import getTblHeader from "@/pages/monitoring/js/getTblHeader";
let vol, resChart, temp, conduct, currChart, leakVol;
let tblData = [];
export default {
    data() {
        let pageConfig = this.$store.getters["user/realTabsConfig"];
        return {
            showPopup: false,
            cascaderValue: '',
@@ -264,6 +242,81 @@
                    value: "???",
                },
            ],
            table: {
                headers: [
                    {
                        prop: "num1",
                        label: "单体编号",
                        width: "",
                        key1: "",
                        fixed: 'left',
                    },
                    {
                        prop: "vol1",
                        label: "电压(V)",
                        width: "",
                        key1: "vol",
                    },
                    {
                        prop: "res1",
                        label: "内阻(mΩ)",
                        width: "",
                        key1: "res",
                    },
                    {
                        prop: "temp1",
                        label: "温度(℃)",
                        width: "",
                        key1: "temp",
                    },
                    {
                        prop: "conduct1",
                        label: "电导",
                        width: "",
                        key1: "conduct",
                    },
                    {
                        prop: "monConnRes",
                        label: "链接条阻值",
                        width: "",
                        key1: "monConnRes",
                    },
                    {
                        prop: "curr1",
                        label: "均衡电流(A)",
                        width: "",
                        key1: "curr"
                    },
                    {
                        prop: "leakVol1",
                        label: "漏液电压(V)",
                        width: "",
                        key1: "leakVol"
                    },
                ],
                datas: [
                    {
                        num1: 0,
                        vol1: 0,
                        res1: 0,
                        temp1: 0,
                        conduct1: 0,
                        curr1: 0,
                        leakVol1: 0,
                    },
                ],
            },
            pageConfig: pageConfig,
            diagram: {
                update: true,
                type: -1,
                desc: "",
                powerCut: 1,
                temp: 0, // 设备温度
                contactRes: 0, // 接触器阻抗
                dropVol: 0, // 导通压降
                devType: 0, // 设备类型
            },
        }
    },
    components: {
@@ -314,6 +367,18 @@
            }
            return list;
        },
        dataHeaders() {
            let headers = this.table.headers;
            let tabConfig = this.pageConfig;
            let batt = this.batt;
            return headers.filter(item => {
                let isShow = item.key1 ? tabConfig[item.key1] : true;
                if (item.type) {
                    isShow = this.$units.regEquipType(batt.FBSDeviceId, item.type);
                }
                return isShow;
            });
        }
    },
    methods: {
        //定时器
@@ -323,6 +388,7 @@
                    .all([
                        this.realTimeSearch(),
                        this.realTimeGroupss(),
                        this.realStateTimeData(),
                        this.search(),
                    ])
                    .then(() => {
@@ -365,19 +431,19 @@
                        }
                    }
                    // 设置输出电压柱状图
                    this.$refs.outputVolList.setData({
                        title: {
                            show: true,
                            text: "输出电压",
                            x: "center",
                            textStyle: {
                                fontSize: "14",
                                color: '#323233'
                            }
                        },
                        name: "输出电压",
                        list: this.volTable,
                    });
                    // this.$refs.outputVolList.setData({
                    //     title: {
                    //         show: true,
                    //         text: "输出电压",
                    //         x: "center",
                    //         textStyle: {
                    //             fontSize: "14",
                    //             color: '#323233'
                    //         }
                    //     },
                    //     name: "输出电压",
                    //     list: this.volTable,
                    // });
                })
                .catch((err) => {
                    console.log(err);
@@ -399,8 +465,60 @@
        leafClick(data) {
            this.batt = data;
            this.realTimeAlarmss();
            this.table.headers = getTblHeader(data.FBSDeviceId);
            // 开启循环请求
            this.startTimer();
        },
        realStateTimeData() {
            let batt = this.batt;
            if (this.$units.regEquipType(batt.FBSDeviceId, ["LD9"])) {
                this.realTimeLd9Data();
            }
        },
        realTimeLd9Data() {
            let batt = this.batt;
            realTimeLd9Data({
                dev_id: batt.FBSDeviceId,
            }).then(res => {
                let rs = JSON.parse(res.data.result);
                if (rs.code == 1) {
                    let data = rs.data[0];
                    // 判断是否超时
                    let outTime = 2 * 60; //设备超时时间(2分钟)
                    let nowTime = new Date(data.note).getTime(); //当前时间
                    let record = new Date(data.record_datetime).getTime();
                    if (Math.abs(nowTime - record) / 1000 > outTime) {
                        this.disconnect();
                    } else {
                        this.diagram.desc = "";
                        // 0-在线监测,1-核容测试,2-测试状态状态停止,3-内阻测试
                        switch (data.sys_state) {
                            case 0:
                                this.diagram.type = 0;
                                break;
                            case 1:
                                this.diagram.type = 1;
                                break;
                            case 2:
                                this.diagram.type = 2;
                                break;
                            case 3:
                                this.diagram.type = 3;
                                this.diagram.desc = "(内阻测试)";
                                break;
                        }
                    }
                } else {
                    this.disconnect();
                }
            }).catch(error => {
                console.log(error);
                this.disconnect();
            });
        },
        disconnect() {
            // 设备未连接
            this.diagram.type = -1;
        },
        /* 查询电池告警参数 */
        realTimeAlarmss() {
@@ -468,27 +586,32 @@
            realTimeSearch({
                BattGroupId: batt.BattGroupId
            }).then(res => {
                let diagramType = this.diagram.type;
                let rs = JSON.parse(res.data.result);
                let data = [];
                if (rs.code == 1) {
                if (rs.code == 1 && diagramType != -1) {
                    data = rs.data.map(item => {
                        return {
                            num1: "#" + item.mon_num,
                            vol1: item.mon_vol,
                            res1: item.mon_res,
                            temp1: item.mon_tmp,
                            conduct1: item.mon_res ? (1 / item.mon_res * 1000).toFixed(0) : 0,
                            conduct1: item.mon_res
                                ? ((1 / item.mon_res) * 1000).toFixed(0)
                                : 0,
                            curr1: item.mon_JH_curr,
                            leakVol1: item.mon_LY_vol
                            leakVol1: item.mon_LY_vol,
                            monConnRes: item.mon_conn_res,
                            monCap: item.mon_cap,
                            monTestCap: diagramType == 1 ? item.monTestCap : "---",
                            monResCap: diagramType == 1 ? item.monRestCap : "---",
                            monDisTimeLong: diagramType == 1 ? Math.floor(item.monDisTimeLong / 60) + "时" + (item.monDisTimeLong % 60) + "分" : "---",
                            monState: item.monState,
                        };
                    });
                }
                // 更新表格
                if (this.acTabs == 'tblData') {
                    this.table.datas = data;
                } else {
                    tblData = data;
                }
                this.table.datas = data;
                // 电压值
                let volTempVol = [];
                if (rs.code == 1) {
@@ -810,6 +933,14 @@
            }
            return -1;
        },
        setTableRowClass({ row }) {
            if (row.monState == 1) {
                return "red-row";
            } else if (row.monState == 2) {
                return "green-row";
            }
            return "";
        },
    },
    mounted() {
        this.searchStation();
@@ -878,7 +1009,7 @@
.listCon {
    width: 100%;
    height: 178px;
    height: 500px;
    border-bottom: 2px solid #eeeeee;
    display: flex;
    align-items: center;
src/store/index.js
@@ -1,20 +1,14 @@
import Vue from 'vue'
import Vuex from 'vuex'
import Vue from 'vue';
import Vuex from 'vuex';
import user from '@/store/modules/user';
Vue.use(Vuex)
export default new Vuex.Store({
  state: {
    userPower: sessionStorage.getItem('userPower')||0, //用户权限
  },
  mutations: {
    setUserPower(state, provider) {
            state.userPower = provider;
      sessionStorage.setItem('userPower', provider);
        },
  },
  actions: {},
Vue.use(Vuex);
const store = new Vuex.Store({
  modules: {
    user,
  },
});
  }
})
export default store;
src/store/modules/user.js
New file
@@ -0,0 +1,47 @@
import const_page from "@/assets/js/const/const_page";
import getItemByKey from "@/assets/js/tools/getItemByKey";
export default {
    namespaced: true,
    state() {
        let realTabsConfig = sessionStorage.getItem('realTabsConfig');
        return {
            userId: sessionStorage.getItem('userId') || 0, //用户ID
            userPower: sessionStorage.getItem('userPower') || 0, //用户权限
            realTabsConfig: realTabsConfig ? JSON.parse(realTabsConfig) : [],
        };
    },
    getters: {
        realTabsConfig(state) {
            let realTabsConfig = state.realTabsConfig;
            let realTime = const_page.realTime;
            let result = {};
            realTime.map(item => {
                let config = getItemByKey(item.key, realTabsConfig);
                let show = config != 0 ? config.show : 1;
                result[item.key] = (show == 1) ? true : false;
            });
            return result;
        }
    },
    mutations: {
        login(state, provider) {
            state.userId = provider.data;
            state.userPower = provider.data2;
            sessionStorage.setItem('userId', provider.data);
            sessionStorage.setItem('userPower', provider.data2);
        },
        changeRealTabsConfig(state, data) {
            state.realTabsConfig = Array.isArray(data) ? data : [];
            sessionStorage.setItem('realTabsConfig', JSON.stringify(data));
        }
    },
    actions: {
        login(context, data) {
            context.commit('login', data);
        },
        changeRealTabsConfig(context, data) {
            context.commit('changeRealTabsConfig', data);
        }
    },
};