| | |
| | | import '@smallwei/avue/lib/index.css'; |
| | | import crudCommon from '@/mixins/crud.js'; |
| | | import { getScreen } from './utils/util'; |
| | | import { getUrlParams } from './utils/validate' |
| | | import { setToken, setRefreshToken } from './utils/auth'; |
| | | import { setStore } from './utils/store'; |
| | | import './permission'; |
| | | import error from './error'; |
| | | import avueUeditor from 'avue-plugin-ueditor'; |
| | |
| | | // 业务组件 |
| | | import tenantPackage from './views/system/tenantpackage.vue'; |
| | | |
| | | // 获取url中是否存在token |
| | | const urlParams = getUrlParams(window.location.href) |
| | | if (urlParams?.token) { |
| | | // 设置cookie和localStorage |
| | | setStore('saber-token', urlParams.token) |
| | | setToken(urlParams.token) |
| | | setRefreshToken(urlParams.token) |
| | | } |
| | | |
| | | |
| | | window.$crudCommon = crudCommon; |
| | | window.axios = axios; |
| | | const app = createApp(App); |
| | |
| | | /* |
| | | * @Author: GuLiMmo 2820890765@qq.com |
| | | * @Date: 2024-08-23 10:51:53 |
| | | * @LastEditors: GuLiMmo 2820890765@qq.com |
| | | * @LastEditTime: 2024-08-29 14:10:56 |
| | | * @FilePath: /drone-web-manage/src/permission.js |
| | | * @Description: |
| | | * Copyright (c) 2024 by GuLiMmo, All Rights Reserved. |
| | | */ |
| | | import router from './router/'; |
| | | import store from './store'; |
| | | import { getToken } from '@/utils/auth'; |
| | | import { getUrlParams } from './utils/validate' |
| | | import NProgress from 'nprogress'; // progress bar |
| | | import 'nprogress/nprogress.css'; // progress bar style |
| | | NProgress.configure({ showSpinner: false }); |
| | | const lockPage = '/lock'; //锁屏页 |
| | | const urlParams = getUrlParams(window.location.href) |
| | | |
| | | router.beforeEach((to, from, next) => { |
| | | const meta = to.meta || {}; |
| | | const isMenu = meta.menu === undefined ? to.query.menu : meta.menu; |
| | |
| | | //如果登录成功访问登录页跳转到主页 |
| | | next({ path: '/' }); |
| | | } else { |
| | | if (store.getters.token.length === 0) { |
| | | const systemToken = store.getters.token || urlParams?.token |
| | | if (systemToken === 0) { |
| | | store.dispatch('FedLogOut').then(() => { |
| | | next({ path: '/login' }); |
| | | }); |
| | |
| | | commit('CLEAR_LOCK'); |
| | | removeToken(); |
| | | removeRefreshToken(); |
| | | removeToken(); |
| | | resolve(); |
| | | }) |
| | | .catch(error => { |
| | |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | // 获取url中的参数 |
| | | export function getUrlParams(url) { |
| | | const urlObj = new URL(window.location.href); |
| | | const params = new URLSearchParams(urlObj.search); |
| | | const urlParams = {}; |
| | | // 遍历每个参数 |
| | | for (let [key, value] of params) { |
| | | // 将参数添加到对象中 |
| | | urlParams[key] = value; |
| | | } |
| | | return urlParams; |
| | | } |
| | |
| | | v-if="row.firmware_status == 1" |
| | | style="display: flex; flex-direction: row; align-items: center" |
| | | > |
| | | <div style="background-color: #f1f1f1; border-radius: 4px">无需升级</div> |
| | | <el-tag type="info">无需升级</el-tag> |
| | | <!-- <div style="background-color: #f1f1f1; border-radius: 4px">无需升级</div> --> |
| | | </div> |
| | | <div |
| | | v-if="row.firmware_status == 2" |
| | | style="display: flex; flex-direction: row; align-items: center" |
| | | > |
| | | <div @click="updateFirmware(row)" class="firmware_status">升级固件</div> |
| | | <el-tag type="success" effect="dark" class="active-element" @click="updateFirmware(row)" |
| | | >升级固件</el-tag |
| | | > |
| | | <!-- <div @click="updateFirmware(row)" class="firmware_status">升级固件</div> --> |
| | | </div> |
| | | <div |
| | | v-if="row.firmware_status == 3" |
| | | style="display: flex; flex-direction: row; align-items: center" |
| | | > |
| | | <div @click="updateFirmware(row)" class="firmware_status">一致性升级</div> |
| | | <el-tag type="success" effect="dark" class="active-element" @click="updateFirmware(row)" |
| | | >一致性升级</el-tag |
| | | > |
| | | <!-- <div @click="updateFirmware(row)" class="firmware_status">一致性升级</div> --> |
| | | </div> |
| | | <div |
| | | v-if="row.firmware_status == 4" |
| | |
| | | ota, |
| | | } from '@/api/device/device'; |
| | | |
| | | import { |
| | | getLazyTree |
| | | } from '@/api/base/region'; |
| | | import { getLazyTree } from '@/api/base/region'; |
| | | |
| | | import { mapGetters } from 'vuex'; |
| | | import FirmwareManage from './components/firmwareManage.vue'; |
| | |
| | | prop: 'area_code', |
| | | type: 'cascader', |
| | | labelWidth: 130, |
| | | hide:true, |
| | | hide: true, |
| | | props: { |
| | | label: 'title', |
| | | value: 'value', |
| | | }, |
| | | dataType:"string", |
| | | dataType: 'string', |
| | | rules: [ |
| | | { |
| | | required: true, |
| | |
| | | list = res.data.data; |
| | | callback(); |
| | | }); |
| | | } else if (level>0 && level<5 ) { |
| | | } else if (level > 0 && level < 5) { |
| | | getLazyTree(node.value).then(res => { |
| | | list = res.data.data; |
| | | callback(); |
| | |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | | <style lang="scss" scoped> |
| | | .firmware_status { |
| | | background-color: aqua; |
| | | border-radius: 4px; |
| | |
| | | cursor: pointer; |
| | | /* color: aqua; */ |
| | | } |
| | | |
| | | .active-element { |
| | | cursor: pointer; |
| | | &:hover { |
| | | background-color: #409eff; |
| | | border-color: #409eff; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | port: 2888, |
| | | proxy: { |
| | | '/api': { |
| | | target: 'http://localhost', |
| | | // target: 'https://wrj.shuixiongit.com/api', |
| | | // target: 'http://localhost', |
| | | target: 'https://wrj.shuixiongit.com/api', |
| | | changeOrigin: true, |
| | | rewrite: path => path.replace(/^\/api/, ''), |
| | | }, |
| | |
| | | resolved "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz" |
| | | integrity sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg== |
| | | |
| | | "@esbuild/win32-x64@0.20.2": |
| | | "@esbuild/darwin-arm64@0.20.2": |
| | | version "0.20.2" |
| | | resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz" |
| | | integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ== |
| | | resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz" |
| | | integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== |
| | | |
| | | "@floating-ui/core@^1.5.3": |
| | | version "1.5.3" |
| | |
| | | estree-walker "^2.0.2" |
| | | picomatch "^2.3.1" |
| | | |
| | | "@rollup/rollup-win32-x64-msvc@4.18.0": |
| | | "@rollup/rollup-darwin-arm64@4.18.0": |
| | | version "4.18.0" |
| | | resolved "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz" |
| | | integrity sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g== |
| | | resolved "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz" |
| | | integrity sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w== |
| | | |
| | | "@saber/nf-design-base-elp@^1.2.0": |
| | | version "1.2.0" |
| | |
| | | jsonfile "^6.0.1" |
| | | universalify "^2.0.0" |
| | | |
| | | fsevents@~2.3.2, fsevents@~2.3.3: |
| | | version "2.3.3" |
| | | resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" |
| | | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== |
| | | |
| | | glob-parent@^5.1.2, glob-parent@~5.1.2: |
| | | version "5.1.2" |
| | | resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz" |