//添加通用组件: addVueComponents({ prefix: config.file("components/views/shared/"), list: [ 'layout', 'nav', 'form', ] }); //添加设备组件: addVueComponents({ prefix: config.file("components/devices/"), list: [ 'gateway', 'humiture', 'light', 'infrared', 'smoke', 'switch1', 'socket', 'plug', 'curtain', 'door', 'lamp', 'camera', 'serialport', 'control', ] }); //message: var connectionId; var connection = new signalR.HubConnectionBuilder().withUrl(config.service('platform/hub?group=page')).build(); connection.onclose(function () { console.log('connect closed'); connect(); }); connection.on('Connected', function (id) { connectionId = id; PubSub.publish('Connected'); }); connection.on("ServerToClient", function (method, message, to, from) { console.log(method); PubSub.publish(method, { message: message, to: to, from: from }); }); //connect(); //router: var routes = []; var home = config.file('components/views/areas/default/index.html'); var login = config.file('components/views/account/login.html'); const router = new VueRouter(); router.beforeEach((to, from, next) => { var url = to.path === '/' ? home : to.path; var name = url.substring(1, url.length - 5).replace(/\//g, "-"); var route = routes[name]; if (!route) { axios.get(url, { headers: { 'Cache-Control': 'no-cache' } }).then(function (response) { var model = parseModel(response); route = { name: name, path: to.path, component: model, meta: model.meta }; router.addRoutes([route]); routes[name] = route; router.push({ path: to.path, query: to.query }); }); } else { next(); } }); //vuex Vue.use(Vuex); const store = new Vuex.Store({ strict: true, state: { token: { accessToken: localStorage.getItem("accessToken"), refreshToken: localStorage.getItem("refreshToken") }, layout: null }, mutations: { set(state, data) { state[data.key] = data.value; }, login(state, data) { localStorage.setItem('accessToken', data.accessToken); localStorage.setItem('refreshToken', data.refreshToken); state.token.accessToken = data.accessToken; state.token.refreshToken = data.refreshToken; }, logout(state) { localStorage.removeItem('accessToken'); localStorage.removeItem('refreshToken'); state.token.accessToken = null; state.token.refreshToken = null; } } }); store.set = function(key, value) { store.commit('set', { key: key, value: value }); } //start: const app = new Vue({ el: '#app', router, store: store, mounted: function () { //router.push(config.file('components/views/home/index.html')) connect(); console.log('app start'); } }); //antd tree 点击内容展开子节点 $('body').on('click', '.ant-tree-node-content-wrapper', function () { $(this).parent('li').children('.ant-tree-switcher.ant-tree-switcher_close').click(); });