910 lines
59 KiB
JavaScript
910 lines
59 KiB
JavaScript
(global["webpackJsonp"] = global["webpackJsonp"] || []).push([["common/components/DeviceTab"],{
|
||
|
||
/***/ 619:
|
||
/*!**********************************************************************!*\
|
||
!*** F:/项目文件夹/测试/congming_huose-apk/common/components/DeviceTab.vue ***!
|
||
\**********************************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
__webpack_require__.r(__webpack_exports__);
|
||
/* harmony import */ var _DeviceTab_vue_vue_type_template_id_52fa3be8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DeviceTab.vue?vue&type=template&id=52fa3be8&scoped=true& */ 620);
|
||
/* harmony import */ var _DeviceTab_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DeviceTab.vue?vue&type=script&lang=js& */ 622);
|
||
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _DeviceTab_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _DeviceTab_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
|
||
/* harmony import */ var _DeviceTab_vue_vue_type_style_index_0_id_52fa3be8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DeviceTab.vue?vue&type=style&index=0&id=52fa3be8&lang=scss&scoped=true& */ 624);
|
||
/* harmony import */ var _E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 46);
|
||
|
||
var renderjs
|
||
|
||
|
||
|
||
|
||
|
||
/* normalize component */
|
||
|
||
var component = Object(_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
|
||
_DeviceTab_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
|
||
_DeviceTab_vue_vue_type_template_id_52fa3be8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
|
||
_DeviceTab_vue_vue_type_template_id_52fa3be8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
|
||
false,
|
||
null,
|
||
"52fa3be8",
|
||
null,
|
||
false,
|
||
_DeviceTab_vue_vue_type_template_id_52fa3be8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"],
|
||
renderjs
|
||
)
|
||
|
||
component.options.__file = "common/components/DeviceTab.vue"
|
||
/* harmony default export */ __webpack_exports__["default"] = (component.exports);
|
||
|
||
/***/ }),
|
||
|
||
/***/ 620:
|
||
/*!*****************************************************************************************************************!*\
|
||
!*** F:/项目文件夹/测试/congming_huose-apk/common/components/DeviceTab.vue?vue&type=template&id=52fa3be8&scoped=true& ***!
|
||
\*****************************************************************************************************************/
|
||
/*! exports provided: render, staticRenderFns, recyclableRender, components */
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
__webpack_require__.r(__webpack_exports__);
|
||
/* harmony import */ var _E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_DeviceTab_vue_vue_type_template_id_52fa3be8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--17-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./DeviceTab.vue?vue&type=template&id=52fa3be8&scoped=true& */ 621);
|
||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_DeviceTab_vue_vue_type_template_id_52fa3be8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
|
||
|
||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_DeviceTab_vue_vue_type_template_id_52fa3be8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
|
||
|
||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_DeviceTab_vue_vue_type_template_id_52fa3be8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
|
||
|
||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_DeviceTab_vue_vue_type_template_id_52fa3be8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; });
|
||
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ 621:
|
||
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
||
!*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--17-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!F:/项目文件夹/测试/congming_huose-apk/common/components/DeviceTab.vue?vue&type=template&id=52fa3be8&scoped=true& ***!
|
||
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
||
/*! exports provided: render, staticRenderFns, recyclableRender, components */
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
__webpack_require__.r(__webpack_exports__);
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
|
||
var components
|
||
var render = function () {
|
||
var _vm = this
|
||
var _h = _vm.$createElement
|
||
var _c = _vm._self._c || _h
|
||
var l0 = _vm.__map(_vm.deviceList, function (device, index) {
|
||
var $orig = _vm.__get_orig(device)
|
||
var m0 = _vm.listRowShowLx(device)
|
||
var m1 = !m0 ? _vm.listRowShowDoorOpen(device) : null
|
||
var m2 = !m0 ? _vm.listRowShowFc(device) : null
|
||
return {
|
||
$orig: $orig,
|
||
m0: m0,
|
||
m1: m1,
|
||
m2: m2,
|
||
}
|
||
})
|
||
var g0 = _vm.deviceList.length
|
||
var g1 = _vm.deviceList.length
|
||
var g2 = g1 == 0 ? _vm.$i18n.t("hubwz") : null
|
||
var g3 = _vm.$i18n.t("addDevice")
|
||
_vm.$mp.data = Object.assign(
|
||
{},
|
||
{
|
||
$root: {
|
||
l0: l0,
|
||
g0: g0,
|
||
g1: g1,
|
||
g2: g2,
|
||
g3: g3,
|
||
},
|
||
}
|
||
)
|
||
}
|
||
var recyclableRender = false
|
||
var staticRenderFns = []
|
||
render._withStripped = true
|
||
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ 622:
|
||
/*!***********************************************************************************************!*\
|
||
!*** F:/项目文件夹/测试/congming_huose-apk/common/components/DeviceTab.vue?vue&type=script&lang=js& ***!
|
||
\***********************************************************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
__webpack_require__.r(__webpack_exports__);
|
||
/* harmony import */ var _E_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_DeviceTab_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--13-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./DeviceTab.vue?vue&type=script&lang=js& */ 623);
|
||
/* harmony import */ var _E_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_DeviceTab_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_E_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_DeviceTab_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
|
||
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _E_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_DeviceTab_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _E_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_DeviceTab_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
|
||
/* harmony default export */ __webpack_exports__["default"] = (_E_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_DeviceTab_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a);
|
||
|
||
/***/ }),
|
||
|
||
/***/ 623:
|
||
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
||
!*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--13-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!F:/项目文件夹/测试/congming_huose-apk/common/components/DeviceTab.vue?vue&type=script&lang=js& ***!
|
||
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/* WEBPACK VAR INJECTION */(function(uni) {
|
||
|
||
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 4);
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
exports.default = void 0;
|
||
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 11));
|
||
var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 13));
|
||
var _deviceRoomOverlay = __webpack_require__(/*! @/common/utils/deviceRoomOverlay.js */ 108);
|
||
var _iotFxCover = __webpack_require__(/*! @/common/utils/iotFxCover.js */ 80);
|
||
var _appUserWs = __webpack_require__(/*! @/common/utils/appUserWs.js */ 37);
|
||
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
||
function normalizeMac(m) {
|
||
if (m === undefined || m === null) return '';
|
||
return String(m).replace(/:/g, '').trim().toUpperCase();
|
||
}
|
||
function mergeIotDataPoint(ov, nv) {
|
||
if (nv === null) return null;
|
||
if ((0, _typeof2.default)(nv) !== 'object' || Array.isArray(nv)) return nv;
|
||
if (!ov || (0, _typeof2.default)(ov) !== 'object' || Array.isArray(ov)) return _objectSpread({}, nv);
|
||
var merged = _objectSpread(_objectSpread({}, ov), nv);
|
||
if (!Object.prototype.hasOwnProperty.call(nv, 'desc') || nv.desc === undefined) {
|
||
if (Object.prototype.hasOwnProperty.call(ov, 'desc') && ov.desc !== undefined) {
|
||
merged.desc = ov.desc;
|
||
}
|
||
}
|
||
return merged;
|
||
}
|
||
var _default = {
|
||
name: 'DeviceTab',
|
||
props: {
|
||
// 首页当前为设备 Tab 时批量订阅;从列表进详情不改变此值,不会整表退订
|
||
subscriptionActive: {
|
||
type: Boolean,
|
||
default: false
|
||
}
|
||
},
|
||
data: function data() {
|
||
return {
|
||
deviceList: [],
|
||
isRefreshing: false,
|
||
kjid: '',
|
||
// 添加空间ID
|
||
pageNum: 1,
|
||
pageSize: 10,
|
||
total: 0,
|
||
hasMore: true,
|
||
requestInProgress: false,
|
||
// 注意:data 键勿用前导 _,小程序端不会挂到 this(会导致 undefined)
|
||
// 当前已 subscribe 的 mac 列表(用于离页/换页时顺序退订)
|
||
listWsSubscribedMacs: [],
|
||
listWsBatchId: 0,
|
||
listWsAppendSeq: 0,
|
||
listWsSeqTimer: null,
|
||
// 为 true 时第 1 页列表拉完必整表重订;下拉/换空间/需刷新 时置 true
|
||
listWsForceFullResync: false,
|
||
staticStatusImg: {
|
||
lx: '/static/lx.png',
|
||
fc: '/static/fc.png',
|
||
dc: '/static/dc.png',
|
||
xh: '/static/xh.png',
|
||
/** 门磁门开 */
|
||
door: '/static/mc.png'
|
||
}
|
||
};
|
||
},
|
||
computed: {
|
||
// 计算当前语言,用于触发更新
|
||
currentLanguage: function currentLanguage() {
|
||
return this.$i18n.getCurrentLanguage();
|
||
}
|
||
},
|
||
created: function created() {
|
||
this.updateDeviceList();
|
||
},
|
||
watch: {
|
||
// 监听语言变化
|
||
currentLanguage: function currentLanguage() {
|
||
console.log('设备页面语言变化:', this.currentLanguage);
|
||
this.updateDeviceList();
|
||
},
|
||
subscriptionActive: {
|
||
immediate: true,
|
||
handler: function handler(on) {
|
||
if (on) {
|
||
this._listSubscriptionTurnOn();
|
||
} else {
|
||
this._listSubscriptionTurnOff();
|
||
}
|
||
}
|
||
}
|
||
},
|
||
mounted: function mounted() {
|
||
var _this = this;
|
||
// 监听语言变化事件
|
||
uni.$on('languageChanged', this.handleLanguageChange);
|
||
// 监听空间切换事件
|
||
uni.$on('spaceChanged', this.handleSpaceChanged);
|
||
// 首页 onShow 拉取空间列表并写入 kjid 后广播,避免子页返回后组件内 kjid 仍为旧值
|
||
uni.$on('homePageShow', this.syncKjidFromStorage);
|
||
uni.$on('deviceListNeedRefresh', this.onDeviceListNeedRefresh);
|
||
uni.$on('refreshDeviceData', this.onRefreshDeviceData);
|
||
uni.$on('appWs:deviceOnlineStatus', this.onAppWsDeviceListOnline);
|
||
uni.$on('appWs:deviceData', this.onAppWsDeviceListData);
|
||
// 初始化空间ID并首次拉取列表
|
||
if (uni.getStorageSync('kjid')) {
|
||
this.kjid = uni.getStorageSync('kjid');
|
||
this.getDeviceList();
|
||
} else {
|
||
this.$http.get('/bst/space/list?pageNum=1&pageSize=99').then(function (res) {
|
||
if (res.code == 200 && res.rows.length > 0) {
|
||
_this.kjid = res.rows[0].id;
|
||
uni.setStorageSync('kjid', _this.kjid);
|
||
_this.getDeviceList();
|
||
}
|
||
});
|
||
}
|
||
},
|
||
beforeDestroy: function beforeDestroy() {
|
||
uni.$off('appWs:opened', this._onListWsSocketOpened);
|
||
this._listSubscriptionTurnOff();
|
||
// 移除事件监听
|
||
uni.$off('languageChanged', this.handleLanguageChange);
|
||
uni.$off('spaceChanged', this.handleSpaceChanged);
|
||
uni.$off('homePageShow', this.syncKjidFromStorage);
|
||
uni.$off('deviceListNeedRefresh', this.onDeviceListNeedRefresh);
|
||
uni.$off('refreshDeviceData', this.onRefreshDeviceData);
|
||
uni.$off('appWs:deviceOnlineStatus', this.onAppWsDeviceListOnline);
|
||
uni.$off('appWs:deviceData', this.onAppWsDeviceListData);
|
||
},
|
||
methods: {
|
||
_listClearSeqTimer: function _listClearSeqTimer() {
|
||
if (this.listWsSeqTimer != null) {
|
||
clearTimeout(this.listWsSeqTimer);
|
||
this.listWsSeqTimer = null;
|
||
}
|
||
},
|
||
_listQueueNext: function _listQueueNext(fn) {
|
||
this._listClearSeqTimer();
|
||
this.listWsSeqTimer = setTimeout(fn, 0);
|
||
},
|
||
_macsFromDeviceList: function _macsFromDeviceList(dlist) {
|
||
var out = [];
|
||
var seen = Object.create(null);
|
||
var src = dlist != null ? dlist : this.deviceList;
|
||
var _iterator = _createForOfIteratorHelper(src || []),
|
||
_step;
|
||
try {
|
||
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
||
var d = _step.value;
|
||
var m = normalizeMac(d && d.mac);
|
||
if (!m || seen[m]) continue;
|
||
seen[m] = true;
|
||
out.push(m);
|
||
}
|
||
} catch (err) {
|
||
_iterator.e(err);
|
||
} finally {
|
||
_iterator.f();
|
||
}
|
||
return out;
|
||
},
|
||
/** 按首次出现顺序去重,保证一 mac 一退订/一订阅 */_macsDedupeOrder: function _macsDedupeOrder(arr) {
|
||
var out = [];
|
||
var seen = Object.create(null);
|
||
var _iterator2 = _createForOfIteratorHelper(arr || []),
|
||
_step2;
|
||
try {
|
||
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
||
var m = _step2.value;
|
||
if (!m || seen[m]) continue;
|
||
seen[m] = true;
|
||
out.push(m);
|
||
}
|
||
} catch (err) {
|
||
_iterator2.e(err);
|
||
} finally {
|
||
_iterator2.f();
|
||
}
|
||
return out;
|
||
},
|
||
_listMacSetSignature: function _listMacSetSignature(macs) {
|
||
return this._macsDedupeOrder(macs).slice().sort().join('\0');
|
||
},
|
||
/** 当前 deviceList 与已订阅 mac 集合一致则无需因接口重复拉取而整表重订(含均空) */_listDeviceListMacsMatchSubscribed: function _listDeviceListMacsMatchSubscribed() {
|
||
var a = this._listMacSetSignature(this._macsFromDeviceList());
|
||
var b = this._listMacSetSignature(this.listWsSubscribedMacs);
|
||
return a === b;
|
||
},
|
||
/** 在设备列表内:对当前已订阅的 mac 顺序退订,再按当前 deviceList 顺序逐条 subscribe(退订完成前不清空,避免离页时漏退订) */_listFullResubscribe: function _listFullResubscribe() {
|
||
var _this2 = this;
|
||
if (!this.subscriptionActive) return;
|
||
(0, _appUserWs.connectIfLoggedIn)();
|
||
this.listWsAppendSeq++;
|
||
this.listWsBatchId++;
|
||
var batchId = this.listWsBatchId;
|
||
var toUnsub = this._macsDedupeOrder(this.listWsSubscribedMacs);
|
||
var toSub = this._macsFromDeviceList();
|
||
var runUnsub = function runUnsub(i) {
|
||
if (batchId !== _this2.listWsBatchId) return;
|
||
if (i >= toUnsub.length) {
|
||
_this2.listWsSubscribedMacs = [];
|
||
return _this2._listRunSubscribeChain(batchId, toSub, 0);
|
||
}
|
||
if ((0, _appUserWs.isOpen)()) {
|
||
(0, _appUserWs.sendJson)({
|
||
action: 'unsubscribe',
|
||
mac: toUnsub[i]
|
||
}, '列表退订');
|
||
}
|
||
_this2._listQueueNext(function () {
|
||
return runUnsub(i + 1);
|
||
});
|
||
};
|
||
runUnsub(0);
|
||
},
|
||
_listRunSubscribeChain: function _listRunSubscribeChain(batchId, macs, i) {
|
||
var _this3 = this;
|
||
if (batchId !== this.listWsBatchId) return;
|
||
if (!this.subscriptionActive) return;
|
||
if (i >= (macs || []).length) return;
|
||
if ((0, _appUserWs.isOpen)()) {
|
||
(0, _appUserWs.sendJson)({
|
||
action: 'subscribe',
|
||
mac: macs[i]
|
||
}, '列表订阅');
|
||
if (!this.listWsSubscribedMacs) {
|
||
this.listWsSubscribedMacs = [];
|
||
}
|
||
this.listWsSubscribedMacs.push(macs[i]);
|
||
}
|
||
this._listQueueNext(function () {
|
||
return _this3._listRunSubscribeChain(batchId, macs, i + 1);
|
||
});
|
||
},
|
||
/** 上拉加载到的新行,逐条 subscribe(仅新 mac) */_listAppendSubscribeRows: function _listAppendSubscribeRows(rows) {
|
||
var _this4 = this;
|
||
if (!this.subscriptionActive) return;
|
||
var have = Object.create(null);
|
||
var _iterator3 = _createForOfIteratorHelper(this.listWsSubscribedMacs || []),
|
||
_step3;
|
||
try {
|
||
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
||
var m = _step3.value;
|
||
have[m] = true;
|
||
}
|
||
} catch (err) {
|
||
_iterator3.e(err);
|
||
} finally {
|
||
_iterator3.f();
|
||
}
|
||
var toAdd = [];
|
||
var _iterator4 = _createForOfIteratorHelper(rows || []),
|
||
_step4;
|
||
try {
|
||
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
||
var d = _step4.value;
|
||
var _m = normalizeMac(d && d.mac);
|
||
if (!_m || have[_m]) continue;
|
||
have[_m] = true;
|
||
toAdd.push(_m);
|
||
}
|
||
} catch (err) {
|
||
_iterator4.e(err);
|
||
} finally {
|
||
_iterator4.f();
|
||
}
|
||
if (!toAdd.length) return;
|
||
this.listWsAppendSeq++;
|
||
var seq = this.listWsAppendSeq;
|
||
var run = function run(j) {
|
||
if (seq !== _this4.listWsAppendSeq) return;
|
||
if (!_this4.subscriptionActive) return;
|
||
if (j >= toAdd.length) return;
|
||
if ((0, _appUserWs.isOpen)()) {
|
||
(0, _appUserWs.sendJson)({
|
||
action: 'subscribe',
|
||
mac: toAdd[j]
|
||
}, '列表上拉订阅');
|
||
if (!_this4.listWsSubscribedMacs) {
|
||
_this4.listWsSubscribedMacs = [];
|
||
}
|
||
_this4.listWsSubscribedMacs.push(toAdd[j]);
|
||
}
|
||
_this4._listQueueNext(function () {
|
||
return run(j + 1);
|
||
});
|
||
};
|
||
run(0);
|
||
},
|
||
_listSubscriptionTurnOn: function _listSubscriptionTurnOn() {
|
||
if (!this.subscriptionActive) return;
|
||
(0, _appUserWs.connectIfLoggedIn)();
|
||
uni.$off('appWs:opened', this._onListWsSocketOpened);
|
||
uni.$on('appWs:opened', this._onListWsSocketOpened);
|
||
this._listFullResubscribe();
|
||
},
|
||
_listSubscriptionTurnOff: function _listSubscriptionTurnOff() {
|
||
var _this5 = this;
|
||
uni.$off('appWs:opened', this._onListWsSocketOpened);
|
||
this._listClearSeqTimer();
|
||
this.listWsBatchId++;
|
||
this.listWsAppendSeq++;
|
||
var toUnsub = this._macsDedupeOrder(this.listWsSubscribedMacs);
|
||
this.listWsSubscribedMacs = [];
|
||
var run = function run(i) {
|
||
if (i >= toUnsub.length) return;
|
||
if ((0, _appUserWs.isOpen)()) {
|
||
(0, _appUserWs.sendJson)({
|
||
action: 'unsubscribe',
|
||
mac: toUnsub[i]
|
||
}, '列表离页退订');
|
||
}
|
||
_this5._listQueueNext(function () {
|
||
return run(i + 1);
|
||
});
|
||
};
|
||
run(0);
|
||
},
|
||
_onListWsSocketOpened: function _onListWsSocketOpened() {
|
||
if (!this.subscriptionActive) return;
|
||
this._listFullResubscribe();
|
||
},
|
||
_onDeviceListHttpDone: function _onDeviceListHttpDone(requestPage, responseRows, loadOk) {
|
||
var _this6 = this;
|
||
if (!loadOk || !this.subscriptionActive) return;
|
||
this.$nextTick(function () {
|
||
if (!_this6.subscriptionActive) return;
|
||
if (requestPage === 1) {
|
||
var needFull = _this6.listWsForceFullResync || !_this6._listDeviceListMacsMatchSubscribed();
|
||
_this6.listWsForceFullResync = false;
|
||
if (needFull) {
|
||
_this6._listFullResubscribe();
|
||
}
|
||
} else {
|
||
_this6._listAppendSubscribeRows(responseRows);
|
||
}
|
||
});
|
||
},
|
||
/** 编辑设备名/房间后等需重新对齐 WS 时的列表刷新 */onDeviceListNeedRefresh: function onDeviceListNeedRefresh() {
|
||
this.listWsForceFullResync = true;
|
||
this.refreshDeviceListFromHome();
|
||
},
|
||
/** 全局长连接:device_online_status 更新列表项在线角标 */onAppWsDeviceListOnline: function onAppWsDeviceListOnline(msg) {
|
||
if (!msg || !msg.data || (0, _typeof2.default)(msg.data) !== 'object') return;
|
||
var outer = msg.data;
|
||
var inner = outer.data;
|
||
if (!inner || (0, _typeof2.default)(inner) !== 'object') return;
|
||
var payloadMac = normalizeMac(inner.mac != null ? inner.mac : outer.mac);
|
||
if (!payloadMac) return;
|
||
var target = (this.deviceList || []).find(function (d) {
|
||
return normalizeMac(d.mac) === payloadMac;
|
||
});
|
||
if (!target) return;
|
||
var statusPayload = inner.data !== undefined && (0, _typeof2.default)(inner.data) === 'object' ? inner.data : inner;
|
||
var os = statusPayload.onlineStatus;
|
||
var lot = statusPayload.lastOnlineTime;
|
||
if (os !== undefined && os !== null && os !== '') {
|
||
var n = Number(os);
|
||
if (!Number.isNaN(n)) {
|
||
this.$set(target, 'onlineStatus', n);
|
||
}
|
||
}
|
||
if (lot !== undefined && lot !== null) {
|
||
this.$set(target, 'lastOnlineTime', lot);
|
||
}
|
||
if (!target.iotOnlineData) {
|
||
this.$set(target, 'iotOnlineData', {});
|
||
}
|
||
if (os !== undefined && os !== null && os !== '') {
|
||
this.$set(target.iotOnlineData, 'onlineStatus', String(os));
|
||
}
|
||
},
|
||
/** 长连接 device_data:按 mac 合入当前行的 iotData,供状态条展示 */onAppWsDeviceListData: function onAppWsDeviceListData(msg) {
|
||
if (!msg || msg.event !== 'device_data') return;
|
||
var outer = msg.data;
|
||
if (!outer || (0, _typeof2.default)(outer) !== 'object') return;
|
||
var inner = outer.data;
|
||
if (!inner || (0, _typeof2.default)(inner) !== 'object') return;
|
||
var payloadMac = normalizeMac(inner.mac != null ? inner.mac : outer.mac);
|
||
if (!payloadMac) return;
|
||
var target = (this.deviceList || []).find(function (d) {
|
||
return normalizeMac(d.mac) === payloadMac;
|
||
});
|
||
if (!target) return;
|
||
var patch = inner.data !== undefined ? inner.data : inner;
|
||
if (!patch || (0, _typeof2.default)(patch) !== 'object') return;
|
||
if (!target.iotData) {
|
||
this.$set(target, 'iotData', {});
|
||
}
|
||
var keys = Object.keys(patch).filter(function (k) {
|
||
return k !== 'mac';
|
||
});
|
||
var _iterator5 = _createForOfIteratorHelper(keys),
|
||
_step5;
|
||
try {
|
||
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
||
var k = _step5.value;
|
||
var nv = patch[k];
|
||
var ov = target.iotData[k];
|
||
var nextVal = nv !== null && (0, _typeof2.default)(nv) === 'object' && !Array.isArray(nv) ? mergeIotDataPoint(ov, nv) : nv;
|
||
if (JSON.stringify(ov) === JSON.stringify(nextVal)) continue;
|
||
this.$set(target.iotData, k, nextVal);
|
||
}
|
||
} catch (err) {
|
||
_iterator5.e(err);
|
||
} finally {
|
||
_iterator5.f();
|
||
}
|
||
},
|
||
/** 列表行:与头像角标一致,onlineStatus 为 1 视为在线(兼容仅有根级 onlineStatus 的列表数据) */listRowIsOnline: function listRowIsOnline(device) {
|
||
if (!device) return false;
|
||
var od = device.iotOnlineData;
|
||
if (od && od.onlineStatus !== undefined && od.onlineStatus !== null) {
|
||
return String(od.onlineStatus) === '1';
|
||
}
|
||
if (device.onlineStatus !== undefined && device.onlineStatus !== null) {
|
||
return String(device.onlineStatus) === '1';
|
||
}
|
||
return false;
|
||
},
|
||
/** 离线展示 lx;无在线信息时不展示,避免首屏全灰 */listRowShowLx: function listRowShowLx(device) {
|
||
if (!device) return false;
|
||
var od = device.iotOnlineData;
|
||
if (od && od.onlineStatus !== undefined && od.onlineStatus !== null) {
|
||
return String(od.onlineStatus) !== '1';
|
||
}
|
||
if (device.onlineStatus !== undefined && device.onlineStatus !== null) {
|
||
return String(device.onlineStatus) !== '1';
|
||
}
|
||
return false;
|
||
},
|
||
_listCoverOpenFromIot: function _listCoverOpenFromIot(iot) {
|
||
var fx = iot && iot.fx;
|
||
if (!fx) return false;
|
||
return (0, _iotFxCover.isFxCoverOpen)(fx);
|
||
},
|
||
/** 接口 statuses 可能在 device 根上,或随长连接合入 iotData.statuses */_listGetStatuses: function _listGetStatuses(device) {
|
||
if (!device) return [];
|
||
if (Array.isArray(device.statuses)) return device.statuses;
|
||
var iot = device.iotData;
|
||
if (iot && Array.isArray(iot.statuses)) return iot.statuses;
|
||
return [];
|
||
},
|
||
_listStatusKeyMatchesDoorOpen: function _listStatusKeyMatchesDoorOpen(key) {
|
||
if (key === undefined || key === null) return false;
|
||
// 兼容 door:open、door_open、Door:Open
|
||
var k = String(key).trim().toLowerCase().replace(/_/g, ':');
|
||
return k === 'door:open';
|
||
},
|
||
_listStatusHasAntiTheft: function _listStatusHasAntiTheft(device) {
|
||
var list = this._listGetStatuses(device);
|
||
for (var i = 0; i < list.length; i++) {
|
||
var s = list[i];
|
||
if (!s || s.key === undefined || s.key === null) continue;
|
||
var k = String(s.key).trim().toLowerCase().replace(/_/g, ':');
|
||
if (k === 'common:anti-theft' || k === 'common:antitheft') return true;
|
||
}
|
||
return false;
|
||
},
|
||
/** 门开:statuses 含 door:open(兼容 door_open 等) */listRowShowDoorOpen: function listRowShowDoorOpen(device) {
|
||
if (!this.listRowIsOnline(device)) return false;
|
||
var list = this._listGetStatuses(device);
|
||
for (var i = 0; i < list.length; i++) {
|
||
var s = list[i];
|
||
if (this._listStatusKeyMatchesDoorOpen(s && s.key)) return true;
|
||
}
|
||
return false;
|
||
},
|
||
/**
|
||
* 防拆/盖子:iotData.fx 为开,或 statuses 含 common:anti-theft
|
||
*/
|
||
listRowShowFc: function listRowShowFc(device) {
|
||
if (!this.listRowIsOnline(device)) return false;
|
||
if (this._listStatusHasAntiTheft(device)) return true;
|
||
if (!device.iotData) return false;
|
||
return this._listCoverOpenFromIot(device.iotData);
|
||
},
|
||
// 请求设备列表;force 为 true 时允许与进行中的请求并行(用于首页 onShow 强制刷新 roomName)
|
||
getDeviceList: function getDeviceList() {
|
||
var _this7 = this;
|
||
var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
||
if (this.requestInProgress && !force) return;
|
||
this.requestInProgress = true;
|
||
var requestPage = this.pageNum;
|
||
var responseRows = [];
|
||
var loadOk = false;
|
||
this.$http.get("/bst/device/list?spaceId=".concat(this.kjid, "&pageNum=").concat(this.pageNum, "&pageSize=").concat(this.pageSize)).then(function (res) {
|
||
if (res.code == 200) {
|
||
loadOk = true;
|
||
_this7.total = Number(res.total || 0);
|
||
var rows = Array.isArray(res.rows) ? res.rows : [];
|
||
responseRows = rows;
|
||
(0, _deviceRoomOverlay.mergeDeviceRoomOverlayIntoRows)(rows);
|
||
if (_this7.pageNum == 1) {
|
||
_this7.deviceList = rows;
|
||
} else {
|
||
_this7.deviceList = _this7.deviceList.concat(rows);
|
||
(0, _deviceRoomOverlay.mergeDeviceRoomOverlayIntoRows)(_this7.deviceList);
|
||
}
|
||
_this7.hasMore = _this7.deviceList.length < _this7.total;
|
||
}
|
||
}).catch(function () {
|
||
// 如果请求失败,使用模拟数据
|
||
_this7.updateDeviceList();
|
||
}).finally(function () {
|
||
_this7.requestInProgress = false;
|
||
if (_this7.isRefreshing) {
|
||
_this7.isRefreshing = false;
|
||
}
|
||
_this7._onDeviceListHttpDone(requestPage, responseRows, loadOk);
|
||
});
|
||
},
|
||
// 处理空间变化
|
||
handleSpaceChanged: function handleSpaceChanged(payload) {
|
||
try {
|
||
this.listWsForceFullResync = true;
|
||
this.kjid = payload && payload.kjid || uni.getStorageSync('kjid');
|
||
this.pageNum = 1;
|
||
this.getDeviceList();
|
||
} catch (e) {
|
||
console.warn('处理空间切换失败:', e);
|
||
}
|
||
},
|
||
// 与本地 storage 中的当前空间 id 对齐,并重新拉设备列表(从设置页改房间返回首页时需刷新 roomName)
|
||
syncKjidFromStorage: function syncKjidFromStorage() {
|
||
var k = uni.getStorageSync('kjid');
|
||
if (k !== undefined && k !== null && k !== '') {
|
||
this.kjid = k;
|
||
}
|
||
this.refreshDeviceListFromHome();
|
||
},
|
||
refreshDeviceListFromHome: function refreshDeviceListFromHome() {
|
||
if (!this.kjid) {
|
||
var k = uni.getStorageSync('kjid');
|
||
if (k !== undefined && k !== null && k !== '') {
|
||
this.kjid = k;
|
||
}
|
||
}
|
||
if (!this.kjid) return;
|
||
this.pageNum = 1;
|
||
this.getDeviceList(true);
|
||
},
|
||
/** 首页空间切换等场景传入 kjid;否则用本地 storage */applySpaceAndRefresh: function applySpaceAndRefresh(kjid) {
|
||
var k = kjid !== undefined && kjid !== null && kjid !== '' ? kjid : uni.getStorageSync('kjid');
|
||
if (k !== undefined && k !== null && k !== '') {
|
||
this.kjid = k;
|
||
}
|
||
this.refreshDeviceListFromHome();
|
||
},
|
||
onRefreshDeviceData: function onRefreshDeviceData(payload) {
|
||
var kjid = payload && payload.kjid;
|
||
this.applySpaceAndRefresh(kjid);
|
||
},
|
||
// 上拉加载更多
|
||
handqixing: function handqixing() {
|
||
if (!this.hasMore) return;
|
||
this.pageNum += 1;
|
||
this.getDeviceList();
|
||
},
|
||
// 下拉刷新
|
||
onRefresh: function onRefresh() {
|
||
var _this8 = this;
|
||
if (this.isRefreshing || this.requestInProgress) return;
|
||
this.isRefreshing = true;
|
||
setTimeout(function () {
|
||
_this8.listWsForceFullResync = true;
|
||
_this8.pageNum = 1;
|
||
_this8.getDeviceList();
|
||
}, 1000);
|
||
},
|
||
handleLanguageChange: function handleLanguageChange(lang) {
|
||
console.log('设备页面语言切换事件:', lang);
|
||
this.updateDeviceList();
|
||
},
|
||
updateDeviceList: function updateDeviceList() {
|
||
console.log('更新设备列表');
|
||
// 强制更新组件
|
||
this.$forceUpdate();
|
||
},
|
||
// 点击设备跳转到详情
|
||
handleDeviceClick: function handleDeviceClick(device) {
|
||
console.log(device);
|
||
if (device.productType == 'HUB') {
|
||
//hub
|
||
uni.navigateTo({
|
||
url: '/subpackage/device/devicexq?id=' + device.id + '&mac=' + device.mac
|
||
});
|
||
} else if (device.productType == 'FIRE') {
|
||
//烟感
|
||
uni.navigateTo({
|
||
url: '/pages/device/yangan?id=' + device.id + '&mac=' + device.mac
|
||
});
|
||
} else if (device.productType == 'DOOR') {
|
||
//门磁
|
||
uni.navigateTo({
|
||
url: '/pages/device/mcgydevice?id=' + device.id
|
||
});
|
||
} else if (device.productType == 'INFRARED') {
|
||
//人体红外传感器
|
||
uni.navigateTo({
|
||
url: '/subpackage/device/rentiredwai/index?id=' + device.id
|
||
});
|
||
} else if (device.productType == 'CONTROL') {
|
||
//遥控器
|
||
uni.navigateTo({
|
||
url: '/subpackage/device/yaokongqi/index?id=' + device.id + '&mac=' + device.mac
|
||
});
|
||
} else if (device.productType == 'GLASS') {
|
||
//玻璃破碎传感器
|
||
uni.navigateTo({
|
||
url: '/subpackage/device/boligan/index?id=' + device.id
|
||
});
|
||
} else if (device.productType == 'WATER') {
|
||
//水浸传感器
|
||
uni.navigateTo({
|
||
url: '/subpackage/device/shuiqinganying/index?id=' + device.id
|
||
});
|
||
} else if (device.productType == 'RELAY') {
|
||
//继电器
|
||
uni.navigateTo({
|
||
url: '/pages/device/jidianqi/index?id=' + device.id
|
||
});
|
||
} else if (device.productType == 'SIREN') {
|
||
//警笛
|
||
uni.navigateTo({
|
||
url: '/pages/device/jingdi/index?id=' + device.id
|
||
});
|
||
} else if (device.productType == 'KEY_BOARD') {
|
||
//键盘
|
||
uni.navigateTo({
|
||
url: '/pages/device/jianpan/index?id=' + device.id
|
||
});
|
||
}
|
||
},
|
||
// 点击添加设备:依次校验 空间 → 房间 → 是否已绑定 HUB;未满足时用弹窗说明下一步(取消 / 确定)
|
||
handleAddDevice: function handleAddDevice() {
|
||
var _this9 = this;
|
||
var t = function t(k) {
|
||
return _this9.$i18n && _this9.$i18n.t ? _this9.$i18n.t(k) : k;
|
||
};
|
||
var showOnboardingModal = function showOnboardingModal(contentKey, url) {
|
||
uni.showModal({
|
||
title: t('onboardingHintTitle'),
|
||
content: t(contentKey),
|
||
cancelText: t('cancel'),
|
||
confirmText: t('confirm'),
|
||
success: function success(res) {
|
||
if (res.confirm) {
|
||
uni.navigateTo({
|
||
url: url
|
||
});
|
||
}
|
||
}
|
||
});
|
||
};
|
||
var proceedWithSpace = function proceedWithSpace(kjid) {
|
||
_this9.kjid = kjid;
|
||
uni.setStorageSync('kjid', kjid);
|
||
_this9.$http.get("/bst/room/list?spaceId=".concat(kjid, "&pageNum=1&pageSize=999")).then(function (roomRes) {
|
||
// 与全局其它接口一致使用 == 200:后端可能返回字符串 "200",用 !== 会误判失败
|
||
if (roomRes.code != 200) {
|
||
uni.showToast({
|
||
title: roomRes.msg || t('error'),
|
||
icon: 'none'
|
||
});
|
||
return;
|
||
}
|
||
var roomRows = Array.isArray(roomRes.rows) ? roomRes.rows : Array.isArray(roomRes.data) ? roomRes.data : Array.isArray(roomRes.records) ? roomRes.records : [];
|
||
var totalNum = roomRes.total !== undefined && roomRes.total !== null && roomRes.total !== '' ? Number(roomRes.total) : NaN;
|
||
var hasRooms = roomRows.length > 0 || !Number.isNaN(totalNum) && totalNum > 0;
|
||
if (!hasRooms) {
|
||
showOnboardingModal('onboardingNeedRoom', '/pages/room/addroom');
|
||
return;
|
||
}
|
||
_this9.$http.get("/bst/device/list?spaceId=".concat(kjid, "&pageNum=1&pageSize=").concat(_this9.pageSize)).then(function (devRes) {
|
||
if (devRes.code != 200) {
|
||
uni.showToast({
|
||
title: devRes.msg || t('error'),
|
||
icon: 'none'
|
||
});
|
||
return;
|
||
}
|
||
var rows = Array.isArray(devRes.rows) ? devRes.rows : [];
|
||
var hasHub = rows.some(function (d) {
|
||
return d.productType === 'HUB';
|
||
});
|
||
if (!hasHub) {
|
||
showOnboardingModal('onboardingNeedHub', '/pages/device/addhub');
|
||
return;
|
||
}
|
||
uni.navigateTo({
|
||
url: '/subpackage/device/adddevice'
|
||
});
|
||
});
|
||
});
|
||
};
|
||
// 优先使用 storage:首页 onShow 会刷新空间并写入 kjid,组件内 this.kjid 可能未同步
|
||
var kjid = uni.getStorageSync('kjid') || this.kjid;
|
||
if (!kjid) {
|
||
this.$http.get('/bst/space/list?pageNum=1&pageSize=99').then(function (spaceRes) {
|
||
if (spaceRes.code == 200 && spaceRes.rows && spaceRes.rows.length > 0) {
|
||
kjid = spaceRes.rows[0].id;
|
||
uni.setStorageSync('kjid', kjid);
|
||
proceedWithSpace(kjid);
|
||
} else {
|
||
showOnboardingModal('onboardingNeedSpace', '/pages/kongjian/index');
|
||
}
|
||
});
|
||
return;
|
||
}
|
||
proceedWithSpace(kjid);
|
||
}
|
||
}
|
||
};
|
||
exports.default = _default;
|
||
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
|
||
|
||
/***/ }),
|
||
|
||
/***/ 624:
|
||
/*!********************************************************************************************************************************!*\
|
||
!*** F:/项目文件夹/测试/congming_huose-apk/common/components/DeviceTab.vue?vue&type=style&index=0&id=52fa3be8&lang=scss&scoped=true& ***!
|
||
\********************************************************************************************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
__webpack_require__.r(__webpack_exports__);
|
||
/* harmony import */ var _E_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_E_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_E_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_DeviceTab_vue_vue_type_style_index_0_id_52fa3be8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!./node_modules/postcss-loader/src??ref--8-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./DeviceTab.vue?vue&type=style&index=0&id=52fa3be8&lang=scss&scoped=true& */ 625);
|
||
/* harmony import */ var _E_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_E_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_E_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_DeviceTab_vue_vue_type_style_index_0_id_52fa3be8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_E_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_E_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_E_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_DeviceTab_vue_vue_type_style_index_0_id_52fa3be8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
|
||
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _E_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_E_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_E_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_DeviceTab_vue_vue_type_style_index_0_id_52fa3be8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _E_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_E_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_E_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_DeviceTab_vue_vue_type_style_index_0_id_52fa3be8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
|
||
/* harmony default export */ __webpack_exports__["default"] = (_E_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_E_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_E_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_DeviceTab_vue_vue_type_style_index_0_id_52fa3be8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default.a);
|
||
|
||
/***/ }),
|
||
|
||
/***/ 625:
|
||
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
||
!*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!./node_modules/postcss-loader/src??ref--8-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!F:/项目文件夹/测试/congming_huose-apk/common/components/DeviceTab.vue?vue&type=style&index=0&id=52fa3be8&lang=scss&scoped=true& ***!
|
||
\************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// extracted by mini-css-extract-plugin
|
||
if(false) { var cssReload; }
|
||
|
||
|
||
/***/ })
|
||
|
||
}]);
|
||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/common/components/DeviceTab.js.map
|
||
;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
|
||
'common/components/DeviceTab-create-component',
|
||
{
|
||
'common/components/DeviceTab-create-component':(function(module, exports, __webpack_require__){
|
||
__webpack_require__('2')['createComponent'](__webpack_require__(619))
|
||
})
|
||
},
|
||
[['common/components/DeviceTab-create-component']]
|
||
]);
|