├── .env.development
├── .env.production
├── .env.test
├── .eslintignore
├── .eslintrc.cjs
├── .gitignore
├── .husky
├── commit-msg
└── pre-commit
├── .prettierignore
├── .prettierrc.json
├── .stylelintignore
├── .stylelintrc.cjs
├── .vscode
└── extensions.json
├── README.md
├── auto-imports.d.ts
├── commitlint.config.cjs
├── components.d.ts
├── dist
├── Error404.svg
├── assets
│ ├── dropdown-77bdf979.js
│ ├── dropdown-77bdf979.js.map
│ ├── el-button-2cb60ae5.css
│ ├── el-button-ce6a7349.js
│ ├── el-button-ce6a7349.js.map
│ ├── el-checkbox-39396082.css
│ ├── el-checkbox-7864edf7.js
│ ├── el-checkbox-7864edf7.js.map
│ ├── el-popover-184dd66d.js
│ ├── el-popover-184dd66d.js.map
│ ├── el-popover-9f471fc1.css
│ ├── el-scrollbar-47c15925.js
│ ├── el-scrollbar-47c15925.js.map
│ ├── el-scrollbar-50ffe050.css
│ ├── el-tag-5dc68ec4.css
│ ├── el-tag-87ada828.js
│ ├── el-tag-87ada828.js.map
│ ├── el-tooltip-01852e75.js
│ ├── el-tooltip-01852e75.js.map
│ ├── el-tooltip-b17b6765.css
│ ├── index-02cad9e4.js
│ ├── index-02cad9e4.js.map
│ ├── index-0944f19a.js
│ ├── index-0944f19a.js.map
│ ├── index-0a73b87f.css
│ ├── index-0a9f0221.css
│ ├── index-0c578ea2.js
│ ├── index-0c578ea2.js.map
│ ├── index-15a0175d.css
│ ├── index-15ba9053.css
│ ├── index-19d86c77.js
│ ├── index-19d86c77.js.map
│ ├── index-1b8b91fa.css
│ ├── index-1f958002.css
│ ├── index-2733eab0.js
│ ├── index-2733eab0.js.map
│ ├── index-2e1405a8.js
│ ├── index-2e1405a8.js.map
│ ├── index-2f425c93.js
│ ├── index-2f425c93.js.map
│ ├── index-3c6d6037.js
│ ├── index-3c6d6037.js.map
│ ├── index-41323360.js
│ ├── index-41323360.js.map
│ ├── index-4ab7df10.css
│ ├── index-5157ca21.js
│ ├── index-5157ca21.js.map
│ ├── index-533eeab1.css
│ ├── index-59d7491a.js
│ ├── index-59d7491a.js.map
│ ├── index-60c3dbff.css
│ ├── index-643e088d.css
│ ├── index-6744f3b8.css
│ ├── index-71872fca.css
│ ├── index-789817b8.js
│ ├── index-789817b8.js.map
│ ├── index-85c0c3d6.js
│ ├── index-85c0c3d6.js.map
│ ├── index-861b5711.css
│ ├── index-87ef9524.js
│ ├── index-87ef9524.js.map
│ ├── index-8e53beb4.js
│ ├── index-8e53beb4.js.map
│ ├── index-8ffda740.css
│ ├── index-9a3907bd.css
│ ├── index-a197a568.js
│ ├── index-a197a568.js.map
│ ├── index-a24e27d3.js
│ ├── index-a24e27d3.js.map
│ ├── index-a7883952.css
│ ├── index-a881b489.css
│ ├── index-ac0a7fa2.css
│ ├── index-af569a1a.js
│ ├── index-af569a1a.js.map
│ ├── index-b4b34e56.js
│ ├── index-b4b34e56.js.map
│ ├── index-c29f998c.js
│ ├── index-c29f998c.js.map
│ ├── index-c5ce11fa.css
│ ├── index-cd4f1ed4.css
│ ├── index-ce6e9686.css
│ ├── index-d0a639e4.css
│ ├── index-d55cf406.js
│ ├── index-d55cf406.js.map
│ ├── index-e713de8e.js
│ ├── index-e713de8e.js.map
│ ├── index-ef1dbbe3.css
│ ├── index-f1908a3d.js
│ ├── index-f1908a3d.js.map
│ ├── index-f5221158.css
│ ├── index-f63efcef.js
│ ├── index-f63efcef.js.map
│ ├── index-f9342d74.js
│ ├── index-f9342d74.js.map
│ ├── index-ff9f8535.css
│ ├── logo_title_white-357c254f.js
│ ├── logo_title_white-357c254f.js.map
│ ├── use-form-item-c41ec946.js
│ ├── use-form-item-c41ec946.js.map
│ ├── use-global-config-40970ff6.js
│ ├── use-global-config-40970ff6.js.map
│ ├── user-a311e178.css
│ ├── user-f5598cef.js
│ ├── user-f5598cef.js.map
│ ├── vnode-2586cffd.js
│ └── vnode-2586cffd.js.map
├── index.html
├── logo_title_white.svg
└── thingsboard.ico
├── index.html
├── mock
├── login.ts
├── mockProdServer.ts
└── vite-plugin-mock.d.ts
├── package.json
├── proxy.conf.ts
├── public
├── Error404.svg
├── logo_title_white.svg
└── thingsboard.ico
├── scripts
└── preinstall.js
├── src
├── App.vue
├── api
│ ├── alarm
│ │ ├── index.ts
│ │ └── type.ts
│ ├── api_url.ts
│ ├── common_type.ts
│ ├── index.ts
│ └── user
│ │ ├── login.ts
│ │ ├── logout.ts
│ │ └── type.ts
├── assets
│ └── icons
│ │ ├── advanced.svg
│ │ ├── alarm.svg
│ │ ├── api.svg
│ │ ├── asset.svg
│ │ ├── assetconfig.svg
│ │ ├── auditlog.svg
│ │ ├── bell.svg
│ │ ├── config.svg
│ │ ├── dashboard.svg
│ │ ├── device.svg
│ │ ├── deviceconfig.svg
│ │ ├── edgemanage.svg
│ │ ├── entity.svg
│ │ ├── entitys.svg
│ │ ├── fire.svg
│ │ ├── fullscreen.svg
│ │ ├── home.svg
│ │ ├── instances.svg
│ │ ├── more.svg
│ │ ├── notification.svg
│ │ ├── offscreen.svg
│ │ ├── ota.svg
│ │ ├── resource.svg
│ │ ├── resources.svg
│ │ ├── rulechain.svg
│ │ ├── rulechaintemplete.svg
│ │ ├── secure.svg
│ │ ├── setting.svg
│ │ ├── user.svg
│ │ ├── version.svg
│ │ └── widget.svg
├── component.d.ts
├── components
│ ├── common_table
│ │ ├── Table.vue
│ │ ├── TableHeader.vue
│ │ ├── TablePager.vue
│ │ └── index.vue
│ ├── fade_transition
│ │ └── index.vue
│ ├── index.ts
│ ├── side_bar_menu
│ │ └── index.vue
│ ├── svg_icon
│ │ └── index.vue
│ └── top_breadcrumb
│ │ └── index.vue
├── layouts
│ ├── LayoutAside.vue
│ ├── LayoutHeader.vue
│ ├── LayoutMain.vue
│ └── index.vue
├── main.ts
├── nprogress.d.ts
├── router
│ ├── dynamicRoutes.ts
│ ├── index.ts
│ └── routes.ts
├── stores
│ ├── alarm.ts
│ ├── index.ts
│ └── user.ts
├── styles
│ ├── index.scss
│ └── reset.scss
├── utils
│ └── http.ts
├── views
│ ├── 404
│ │ └── index.vue
│ ├── advanced_feature
│ │ ├── ota
│ │ │ └── index.vue
│ │ └── version_control
│ │ │ └── index.vue
│ ├── alarm
│ │ └── index.vue
│ ├── api_statistics
│ │ └── index.vue
│ ├── config
│ │ ├── asset_config
│ │ │ └── index.vue
│ │ └── device_config
│ │ │ └── index.vue
│ ├── dashboard
│ │ └── index.vue
│ ├── edge_manage
│ │ ├── instances
│ │ │ └── index.vue
│ │ └── rulechain_template
│ │ │ └── index.vue
│ ├── entity
│ │ ├── asset
│ │ │ └── index.vue
│ │ ├── device
│ │ │ └── index.vue
│ │ └── entity_view
│ │ │ └── index.vue
│ ├── home
│ │ ├── index.vue
│ │ ├── max_card
│ │ │ └── index.vue
│ │ └── mini_card
│ │ │ └── index.vue
│ ├── login
│ │ └── index.vue
│ ├── notification_center
│ │ └── index.vue
│ ├── resources
│ │ ├── resource
│ │ │ └── index.vue
│ │ └── widget
│ │ │ └── index.vue
│ ├── rulechain
│ │ └── index.vue
│ ├── secure
│ │ └── audit_log
│ │ │ └── index.vue
│ ├── settings
│ │ └── index.vue
│ └── user
│ │ └── index.vue
└── vite-env.d.ts
├── tsconfig.json
├── tsconfig.node.json
├── user_data.json
├── vite.config.ts
└── yarn.lock
/.env.development:
--------------------------------------------------------------------------------
1 | VITE_PROXY_URL = "http://localhost:8080"
2 | VITE_BASE_API_PREFIX = "/api"
--------------------------------------------------------------------------------
/.env.production:
--------------------------------------------------------------------------------
1 | VITE_BASE_API_PREFIX = "/api"
--------------------------------------------------------------------------------
/.env.test:
--------------------------------------------------------------------------------
1 | VITE_PROXY_URL = ""
2 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | dist
2 | node_modules
3 |
--------------------------------------------------------------------------------
/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | env: {
3 | browser: true,
4 | es2021: true,
5 | node: true,
6 | jest: true,
7 | },
8 | /* 指定如何解析语法 */
9 | parser: 'vue-eslint-parser',
10 | /** 优先级低于 parse 的语法解析配置 */
11 | parserOptions: {
12 | ecmaVersion: 'latest',
13 | sourceType: 'module',
14 | parser: '@typescript-eslint/parser',
15 | jsxPragma: 'React',
16 | ecmaFeatures: {
17 | jsx: true,
18 | },
19 | },
20 | /* 继承已有的规则 */
21 | extends: [
22 | 'eslint:recommended',
23 | 'plugin:vue/vue3-essential',
24 | 'plugin:@typescript-eslint/recommended',
25 | 'plugin:prettier/recommended',
26 | ],
27 | plugins: ['vue', '@typescript-eslint'],
28 | /*
29 | * "off" 或 0 ==> 关闭规则
30 | * "warn" 或 1 ==> 打开的规则作为警告(不影响代码执行)
31 | * "error" 或 2 ==> 规则作为一个错误(代码不能执行,界面报错)
32 | */
33 | rules: {
34 | // eslint(https://eslint.bootcss.com/docs/rules/)
35 | 'no-var': 'error', // 要求使用 let 或 const 而不是 var
36 | 'no-multiple-empty-lines': ['warn', { max: 1 }], // 不允许多个空行
37 | 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
38 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
39 | 'no-unexpected-multiline': 'error', // 禁止空余的多行
40 | 'no-useless-escape': 'off', // 禁止不必要的转义字符
41 |
42 | // typeScript (https://typescript-eslint.io/rules)
43 | '@typescript-eslint/no-unused-vars': 'error', // 禁止定义未使用的变量
44 | '@typescript-eslint/prefer-ts-expect-error': 'error', // 禁止使用 @ts-ignore
45 | '@typescript-eslint/no-explicit-any': 'off', // 禁止使用 any 类型
46 | '@typescript-eslint/no-non-null-assertion': 'off',
47 | '@typescript-eslint/no-namespace': 'off', // 禁止使用自定义 TypeScript 模块和命名空间。
48 | '@typescript-eslint/semi': 'off',
49 |
50 | // eslint-plugin-vue (https://eslint.vuejs.org/rules/)
51 | 'vue/multi-word-component-names': 'off', // 要求组件名称始终为 “-” 链接的单词
52 | 'vue/script-setup-uses-vars': 'error', // 防止\r\n\r\n\r\n"],"names":["tableProps"],"mappings":"yXAaA,MAAAA,EAAA,CAA0B,UAAA,CAAA,EACZ,QAAA,CACH,CACP,MAAA,OACS,KAAA,YACD,EACR,CACA,MAAA,KACS,KAAA,MACD,EACR,CACA,MAAA,OACS,KAAA,MACD,EACR,CACA,MAAA,QACS,KAAA,MACD,CACR,EACF,UAAA,GACW,KAAA,QACL,WAAA,CACM,UAAA,GACC,WAAA,CAAA,GAAA,GAAA,EAAA,EACY,MAAA,GAChB,aAAA,EACO,OAAA,iCACN,EACV,iBAAA,UACkB"}
--------------------------------------------------------------------------------
/dist/assets/index-0944f19a.js:
--------------------------------------------------------------------------------
1 | import"./el-scrollbar-47c15925.js";import"./el-tooltip-01852e75.js";import{E as i}from"./el-popover-184dd66d.js";import{E as n}from"./el-button-ce6a7349.js";import{C as l}from"./index-41323360.js";import{d as c,a as _,c as m,B as e,w as t,C as d,D as f,f as u,u as r,W as s,ac as g,ad as b,Z as x}from"./index-5157ca21.js";import"./use-form-item-c41ec946.js";import"./dropdown-77bdf979.js";import"./use-global-config-40970ff6.js";import"./el-checkbox-7864edf7.js";import"./el-tag-87ada828.js";const v={id:"container"},h={id:"filter"},y=c({__name:"index",setup(k){const p={tableData:[],columns:[{label:"创建时间",prop:"createTime"},{label:"发起者",prop:"name"},{label:"类型",prop:"type"},{label:"严重程度",prop:"severity"},{label:"Assignee",prop:"assignee"},{label:"状态",prop:"status"},{fixed:"right",label:"详情",prop:"detail"}],maxHeight:"",name:"",expend:!1,pagination:{page_size:10,page_sizes:[10,20,50],total:21,current_page:1,layout:"total, sizes, prev, pager, next"},emptyDescription:"未发现告警"};return(B,C)=>{const o=n,a=i;return _(),m("main",v,[e(l,d(f(p)),{table_head_left:t(()=>[u("section",h,[e(a,{placement:"bottom",trigger:"click"},{reference:t(()=>[e(o,{class:"m-2",icon:r(g)},{default:t(()=>[s("Filter: 激活")]),_:1},8,["icon"])]),_:1}),e(a,{placement:"bottom",trigger:"click"},{reference:t(()=>[e(o,{class:"m-2",icon:r(b)},{default:t(()=>[s("For All Time")]),_:1},8,["icon"])]),_:1})])]),_:1},16)])}}});const I=x(y,[["__scopeId","data-v-85a13664"]]);export{I as default};
2 | //# sourceMappingURL=index-0944f19a.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/index-0944f19a.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index-0944f19a.js","sources":["../../src/views/alarm/src/views/alarm/index.vue"],"sourcesContent":["\r\n \r\n \r\n \r\n \r\n \r\n \r\n Filter: 激活\r\n \r\n \r\n \r\n \r\n For All Time\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n"],"names":["tableProps"],"mappings":"mjBAwBA,MAAAA,EAAA,CAA0B,UAAA,CAAA,EACZ,QAAA,CACH,CACP,MAAA,OACS,KAAA,YACD,EACR,CACA,MAAA,MACS,KAAA,MACD,EACR,CACA,MAAA,KACS,KAAA,MACD,EACR,CACA,MAAA,OACS,KAAA,UACD,EACR,CACA,MAAA,WACS,KAAA,UACD,EACR,CACA,MAAA,KACS,KAAA,QACD,EACR,CACA,MAAA,QACS,MAAA,KACA,KAAA,QACD,CACR,EACF,UAAA,GACW,KAAA,GACL,OAAA,GACE,WAAA,CACI,UAAA,GACC,WAAA,CAAA,GAAA,GAAA,EAAA,EACY,MAAA,GAChB,aAAA,EACO,OAAA,iCACN,EACV,iBAAA,OACkB"}
--------------------------------------------------------------------------------
/dist/assets/index-0a73b87f.css:
--------------------------------------------------------------------------------
1 | #container[data-v-252eab1e]{width:100%;height:100%;background-color:#fff;padding:16px}#container .el-icon[data-v-252eab1e]{color:#f79a7e;font-size:24px}#container .el-icon[data-v-252eab1e]:hover{cursor:pointer;color:#ff6433}
2 |
--------------------------------------------------------------------------------
/dist/assets/index-0a9f0221.css:
--------------------------------------------------------------------------------
1 | #container[data-v-5f1e31e8]{width:100%;height:100%;background-color:#fff;padding:16px}#container .el-icon[data-v-5f1e31e8]{color:#f79a7e;font-size:24px}#container .el-icon[data-v-5f1e31e8]:hover{cursor:pointer;color:#ff6433}
2 |
--------------------------------------------------------------------------------
/dist/assets/index-0c578ea2.js:
--------------------------------------------------------------------------------
1 | import{E as n}from"./el-scrollbar-47c15925.js";import{C as p}from"./index-41323360.js";import{d as s,a as r,c as l,B as e,w as a,C as _,D as i,u as c,ae as m,Z as d}from"./index-5157ca21.js";import"./el-checkbox-7864edf7.js";import"./use-form-item-c41ec946.js";import"./el-tag-87ada828.js";import"./el-tooltip-01852e75.js";const u={id:"container"},f=s({__name:"index",setup(b){const t={tableData:[],columns:[{label:"创建时间",prop:"createTime"},{label:"标题",prop:"title"},{label:"分配给客户",prop:"customr"},{label:"公开",prop:"public"}],maxHeight:"",name:"仪表板库",expend:!1,pagination:{page_size:10,page_sizes:[10,20,50],total:21,current_page:1,layout:"total, sizes, prev, pager, next"},emptyDescription:"未发现仪表板"};return(x,g)=>{const o=n;return r(),l("main",u,[e(p,_(i(t)),{table_column:a(()=>[e(o,null,{default:a(()=>[e(c(m))]),_:1})]),_:1},16)])}}});const E=d(f,[["__scopeId","data-v-eb70865e"]]);export{E as default};
2 | //# sourceMappingURL=index-0c578ea2.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/index-0c578ea2.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index-0c578ea2.js","sources":["../../src/views/dashboard/src/views/dashboard/index.vue"],"sourcesContent":["\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n"],"names":["tableProps"],"mappings":"yXAaA,MAAAA,EAAA,CAA0B,UAAA,CAAA,EACZ,QAAA,CACH,CACP,MAAA,OACS,KAAA,YACD,EACR,CACA,MAAA,KACS,KAAA,OACD,EACR,CACA,MAAA,QACS,KAAA,SACD,EACR,CACA,MAAA,KACS,KAAA,QACD,CACR,EACF,UAAA,GACW,KAAA,OACL,OAAA,GACE,WAAA,CACI,UAAA,GACC,WAAA,CAAA,GAAA,GAAA,EAAA,EACY,MAAA,GAChB,aAAA,EACO,OAAA,iCACN,EACV,iBAAA,QACkB"}
--------------------------------------------------------------------------------
/dist/assets/index-15a0175d.css:
--------------------------------------------------------------------------------
1 | .container[data-v-e79510d8]{display:flex;background-color:#fff;flex-direction:column}
2 |
--------------------------------------------------------------------------------
/dist/assets/index-15ba9053.css:
--------------------------------------------------------------------------------
1 | #container[data-v-66cd12b8]{width:100%;height:100%;background-color:#fff;padding:16px}#container .el-icon[data-v-66cd12b8]{color:#f79a7e;font-size:24px}#container .el-icon[data-v-66cd12b8]:hover{cursor:pointer;color:#ff6433}
2 |
--------------------------------------------------------------------------------
/dist/assets/index-1f958002.css:
--------------------------------------------------------------------------------
1 | #container[data-v-04e2942c]{width:100%;height:100%;background-color:#fff;padding:16px}#container .el-icon[data-v-04e2942c]{color:#f79a7e;font-size:24px}#container .el-icon[data-v-04e2942c]:hover{cursor:pointer;color:#ff6433}
2 |
--------------------------------------------------------------------------------
/dist/assets/index-2733eab0.js:
--------------------------------------------------------------------------------
1 | import{Z as e,a as _,c}from"./index-5157ca21.js";const n={},t={class:"container"};function s(a,o){return _(),c("div",t)}const d=e(n,[["render",s],["__scopeId","data-v-8af4132b"]]);export{d as default};
2 | //# sourceMappingURL=index-2733eab0.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/index-2733eab0.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index-2733eab0.js","sources":["../../src/views/notification_center/index.vue"],"sourcesContent":["\r\n\r\n\r\n \r\n\r\n\r\n\r\n"],"names":["_sfc_render","_ctx","_cache"],"mappings":"kFAGE,SAAAA,EAAAC,EAAAC,EAAA"}
--------------------------------------------------------------------------------
/dist/assets/index-2e1405a8.js:
--------------------------------------------------------------------------------
1 | import{E as p}from"./el-scrollbar-47c15925.js";import{C as i}from"./index-41323360.js";import"./el-tooltip-01852e75.js";import{E as l}from"./el-popover-184dd66d.js";import{E as _}from"./el-button-ce6a7349.js";import{d as c,a as m,c as d,B as e,w as t,C as u,D as f,f as b,u as o,W as g,ac as x,af as h,Z as v}from"./index-5157ca21.js";import"./el-checkbox-7864edf7.js";import"./use-form-item-c41ec946.js";import"./el-tag-87ada828.js";import"./dropdown-77bdf979.js";import"./use-global-config-40970ff6.js";const E={id:"container"},y={id:"filter"},B=c({__name:"index",setup(C){const a={tableData:[],columns:[{label:"创建时间",prop:"createTime"},{label:"标题",prop:"title"},{label:"电子邮件",prop:"email"},{label:"国家",prop:"country"},{label:"城市",prop:"city"}],maxHeight:"",name:"客户",pagination:{page_size:10,page_sizes:[10,20,50],total:21,current_page:1,layout:"total, sizes, prev, pager, next"},emptyDescription:"未发现客户"};return(z,D)=>{const r=_,n=l,s=p;return m(),d("main",E,[e(i,u(f(a)),{table_head_left:t(()=>[b("section",y,[e(n,{placement:"bottom",trigger:"click"},{reference:t(()=>[e(r,{class:"m-2",icon:o(x)},{default:t(()=>[g("Device Filter")]),_:1},8,["icon"])]),_:1})])]),table_head_right:t(()=>[e(s,null,{default:t(()=>[e(o(h))]),_:1})]),_:1},16)])}}});const Z=v(B,[["__scopeId","data-v-b4b1d3db"]]);export{Z as default};
2 | //# sourceMappingURL=index-2e1405a8.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/index-2e1405a8.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index-2e1405a8.js","sources":["../../src/views/user/src/views/user/index.vue"],"sourcesContent":["\r\n \r\n \r\n \r\n \r\n \r\n \r\n Device Filter\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n"],"names":["tableProps"],"mappings":"+jBAsBA,MAAAA,EAAA,CAA0B,UAAA,CAAA,EACZ,QAAA,CACH,CACP,MAAA,OACS,KAAA,YACD,EACR,CACA,MAAA,KACS,KAAA,OACD,EACR,CACA,MAAA,OACS,KAAA,OACD,EACR,CACA,MAAA,KACS,KAAA,SACD,EACR,CACA,MAAA,KACS,KAAA,MACD,CACR,EACF,UAAA,GACW,KAAA,KACL,WAAA,CACM,UAAA,GACC,WAAA,CAAA,GAAA,GAAA,EAAA,EACY,MAAA,GAChB,aAAA,EACO,OAAA,iCACN,EACV,iBAAA,OACkB"}
--------------------------------------------------------------------------------
/dist/assets/index-2f425c93.js:
--------------------------------------------------------------------------------
1 | import{E as p}from"./el-scrollbar-47c15925.js";import{C as _}from"./index-41323360.js";import"./el-tooltip-01852e75.js";import{E as i}from"./el-popover-184dd66d.js";import{E as c}from"./el-button-ce6a7349.js";import{d as l,a as m,c as d,B as e,w as t,C as f,D as u,f as b,u as o,W as g,ac as x,af as h,Z as v}from"./index-5157ca21.js";import"./el-checkbox-7864edf7.js";import"./use-form-item-c41ec946.js";import"./el-tag-87ada828.js";import"./dropdown-77bdf979.js";import"./use-global-config-40970ff6.js";const E={id:"container"},B={id:"filter"},C=l({__name:"index",setup(y){const a={tableData:[],columns:[{label:"创建时间",prop:"createTime"},{label:"名称",prop:"name"},{label:"说明",prop:"desc"},{label:"默认",prop:"default"}],maxHeight:"",name:"资产配置",pagination:{page_size:10,page_sizes:[10,20,50],total:21,current_page:1,layout:"total, sizes, prev, pager, next"},emptyDescription:"未找到资产配置"};return(z,D)=>{const r=c,n=i,s=p;return m(),d("main",E,[e(_,f(u(a)),{table_head_left:t(()=>[b("section",B,[e(n,{placement:"bottom",trigger:"click"},{reference:t(()=>[e(r,{class:"m-2",icon:o(x)},{default:t(()=>[g("Device Filter")]),_:1},8,["icon"])]),_:1})])]),table_head_right:t(()=>[e(s,null,{default:t(()=>[e(o(h))]),_:1})]),_:1},16)])}}});const Z=v(C,[["__scopeId","data-v-1d3b360f"]]);export{Z as default};
2 | //# sourceMappingURL=index-2f425c93.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/index-2f425c93.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index-2f425c93.js","sources":["../../src/views/config/asset_config/src/views/config/asset_config/index.vue"],"sourcesContent":["\r\n \r\n \r\n \r\n \r\n \r\n \r\n Device Filter\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n"],"names":["tableProps"],"mappings":"+jBAsBA,MAAAA,EAAA,CAA0B,UAAA,CAAA,EACZ,QAAA,CACH,CACP,MAAA,OACS,KAAA,YACD,EACR,CACA,MAAA,KACS,KAAA,MACD,EACR,CACA,MAAA,KACS,KAAA,MACD,EACR,CACA,MAAA,KACS,KAAA,SACD,CACR,EACF,UAAA,GACW,KAAA,OACL,WAAA,CACM,UAAA,GACC,WAAA,CAAA,GAAA,GAAA,EAAA,EACY,MAAA,GAChB,aAAA,EACO,OAAA,iCACN,EACV,iBAAA,SACkB"}
--------------------------------------------------------------------------------
/dist/assets/index-4ab7df10.css:
--------------------------------------------------------------------------------
1 | #container[data-v-7ca12e35]{width:100%;height:100%;background-color:#fff;padding:16px}#container .el-icon[data-v-7ca12e35]{color:#f79a7e;font-size:24px}#container .el-icon[data-v-7ca12e35]:hover{cursor:pointer;color:#ff6433}
2 |
--------------------------------------------------------------------------------
/dist/assets/index-533eeab1.css:
--------------------------------------------------------------------------------
1 | #container[data-v-5d8edbd3]{width:100%;height:100%;background-color:#fff;padding:16px}#container .el-icon[data-v-5d8edbd3]{color:#f79a7e;font-size:24px}#container .el-icon[data-v-5d8edbd3]:hover{cursor:pointer;color:#ff6433}
2 |
--------------------------------------------------------------------------------
/dist/assets/index-59d7491a.js:
--------------------------------------------------------------------------------
1 | import{E as s}from"./el-scrollbar-47c15925.js";import{C as l}from"./index-41323360.js";import"./el-tooltip-01852e75.js";import{E as c}from"./el-popover-184dd66d.js";import{E as i}from"./el-button-ce6a7349.js";import{d as _,a as m,c as d,B as e,w as t,C as f,D as u,f as b,u as o,W as g,ac as x,af as h,Z as v}from"./index-5157ca21.js";import"./el-checkbox-7864edf7.js";import"./use-form-item-c41ec946.js";import"./el-tag-87ada828.js";import"./dropdown-77bdf979.js";import"./use-global-config-40970ff6.js";const E={id:"container"},B={id:"filter"},C=_({__name:"index",setup(y){const a={tableData:[],columns:[{label:"创建时间",prop:"createTime"},{label:"名称",prop:"name"},{label:"资产配置",prop:"config"},{label:"标签",prop:"label"},{label:"客户",prop:"customr"},{label:"公开",prop:"public"}],maxHeight:"",name:"资产",expend:!1,pagination:{page_size:10,page_sizes:[10,20,50],total:21,current_page:1,layout:"total, sizes, prev, pager, next"},emptyDescription:"未发现资产"};return(z,D)=>{const r=i,n=c,p=s;return m(),d("main",E,[e(l,f(u(a)),{table_head_left:t(()=>[b("section",B,[e(n,{placement:"bottom",trigger:"click"},{reference:t(()=>[e(r,{class:"m-2",icon:o(x)},{default:t(()=>[g("Device Filter")]),_:1},8,["icon"])]),_:1})])]),table_head_right:t(()=>[e(p,null,{default:t(()=>[e(o(h))]),_:1})]),_:1},16)])}}});const Z=v(C,[["__scopeId","data-v-7ca12e35"]]);export{Z as default};
2 | //# sourceMappingURL=index-59d7491a.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/index-59d7491a.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index-59d7491a.js","sources":["../../src/views/entity/asset/src/views/entity/asset/index.vue"],"sourcesContent":["\r\n \r\n \r\n \r\n \r\n \r\n \r\n Device Filter\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n"],"names":["tableProps"],"mappings":"+jBAsBA,MAAAA,EAAA,CAA0B,UAAA,CAAA,EACZ,QAAA,CACH,CACP,MAAA,OACS,KAAA,YACD,EACR,CACA,MAAA,KACS,KAAA,MACD,EACR,CACA,MAAA,OACS,KAAA,QACD,EACR,CACA,MAAA,KACS,KAAA,OACD,EACR,CACA,MAAA,KACS,KAAA,SACD,EACR,CACA,MAAA,KACS,KAAA,QACD,CACR,EACF,UAAA,GACW,KAAA,KACL,OAAA,GACE,WAAA,CACI,UAAA,GACC,WAAA,CAAA,GAAA,GAAA,EAAA,EACY,MAAA,GAChB,aAAA,EACO,OAAA,iCACN,EACV,iBAAA,OACkB"}
--------------------------------------------------------------------------------
/dist/assets/index-60c3dbff.css:
--------------------------------------------------------------------------------
1 | #container[data-v-b4b1d3db]{width:100%;height:100%;background-color:#fff;padding:16px}#container .el-icon[data-v-b4b1d3db]{color:#f79a7e;font-size:24px}#container .el-icon[data-v-b4b1d3db]:hover{cursor:pointer;color:#ff6433}
2 |
--------------------------------------------------------------------------------
/dist/assets/index-643e088d.css:
--------------------------------------------------------------------------------
1 | .fade-enter-active[data-v-1d780b32],.fade-leave-active[data-v-1d780b32]{transition:opacity .5s}.fade-enter[data-v-1d780b32],.fade-leave-to[data-v-1d780b32]{opacity:0}.bounce-enter-active[data-v-1d780b32]{animation:bounce-in-1d780b32 .5s}.bounce-leave-active[data-v-1d780b32]{animation:bounce-in-1d780b32 .5s reverse}@keyframes bounce-in-1d780b32{0%{transform:scale(0)}50%{transform:scale(1.5)}to{transform:scale(1)}}.container[data-v-7090950c]{display:flex;width:100%;height:100vh;justify-content:center;align-items:center;background-color:#eee}.container #login_container[data-v-7090950c]{background-color:#305680;width:35%;height:800px;overflow-y:hidden;display:flex;flex-direction:column;align-items:center;justify-content:space-between}.container #login_container #login_logo[data-v-7090950c]{width:50%;height:60px;margin:30px auto}.container #login_container #login_logo #img[data-v-7090950c]{width:100%}.container #login_container #label[data-v-7090950c]{display:block;width:100%;color:#fff;text-align:center}.container #login_container #login_btn[data-v-7090950c]{margin-top:50px;display:flex;flex-direction:column;align-items:stretch}.container #login_container #login_btn .elb[data-v-7090950c]{margin:10px 20px;font-weight:700}.container #login_container #login_divider[data-v-7090950c]{margin:10px 20px;display:flex;align-items:center;justify-content:space-between;color:#fff}.container #login_container #login_divider .left[data-v-7090950c],.container #login_container #login_divider .right[data-v-7090950c]{height:2px;width:45%}.container #login_container #login_form[data-v-7090950c]{margin:10px 20px}.container #login_container #login_form[data-v-7090950c] .el-input__wrapper{margin:25px 0}.container #login_container #login_operate[data-v-7090950c]{margin:10px 20px;display:flex;align-items:center;justify-content:space-between}.container #login_container #sign_up[data-v-7090950c]{margin:50px 20px}.container #login_container #sign_up #registry_operate[data-v-7090950c]{display:flex;justify-content:space-between;align-items:center}.container #login_container #sign_up #sign_up_title[data-v-7090950c]{color:#fff;font-weight:700;font-size:24px;margin:20px}.container #login_container #sign_up #fullname[data-v-7090950c]{display:flex;align-items:center;justify-content:space-between;margin:10px 0}.container #login_container #sign_up[data-v-7090950c] .el-input__wrapper{margin:10px 0}.container #login_container #login_submit[data-v-7090950c]{margin:40px 20px 10px}.container #login_container #submit[data-v-7090950c],.container #login_container #registry[data-v-7090950c]{margin:10px 0;width:100%;background-color:#f79a7e;border:none;padding:20px;border-radius:5px;cursor:pointer}@media (width <= 768px){.container #login_container[data-v-7090950c]{width:80%}}@media (width >= 1920px){.container #login_container[data-v-7090950c]{width:20%}}.v-enter-active[data-v-7090950c],.v-leave-active[data-v-7090950c]{transition:opacity .5s ease}.v-enter-from[data-v-7090950c],.v-leave-to[data-v-7090950c]{opacity:0}
2 |
--------------------------------------------------------------------------------
/dist/assets/index-71872fca.css:
--------------------------------------------------------------------------------
1 | #container[data-v-bdd4c15b]{width:100%;height:100%;background-color:#fff;padding:16px}#container .el-icon[data-v-bdd4c15b]{color:#f79a7e;font-size:24px}#container .el-icon[data-v-bdd4c15b]:hover{cursor:pointer;color:#ff6433}
2 |
--------------------------------------------------------------------------------
/dist/assets/index-789817b8.js:
--------------------------------------------------------------------------------
1 | import{E as s}from"./el-scrollbar-47c15925.js";import{C as p}from"./index-41323360.js";import{d as n,a as r,c as _,B as e,w as t,C as i,D as l,u as c,af as m,Z as d}from"./index-5157ca21.js";import"./el-checkbox-7864edf7.js";import"./use-form-item-c41ec946.js";import"./el-tag-87ada828.js";import"./el-tooltip-01852e75.js";const u={id:"container"},f=n({__name:"index",setup(b){const a={tableData:[],columns:[{label:"创建时间",prop:"createTime"},{label:"标题",prop:"title"},{label:"资源类型",prop:"type"},{label:"系统",prop:"system"}],maxHeight:"",name:"资源库",pagination:{page_size:10,page_sizes:[10,20,50],total:21,current_page:1,layout:"total, sizes, prev, pager, next"},emptyDescription:"未找到资源"};return(x,g)=>{const o=s;return r(),_("main",u,[e(p,i(l(a)),{table_head_right:t(()=>[e(o,null,{default:t(()=>[e(c(m))]),_:1})]),_:1},16)])}}});const E=d(f,[["__scopeId","data-v-5d8edbd3"]]);export{E as default};
2 | //# sourceMappingURL=index-789817b8.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/index-789817b8.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index-789817b8.js","sources":["../../src/views/resources/resource/src/views/resources/resource/index.vue"],"sourcesContent":["\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n"],"names":["tableProps"],"mappings":"yXAaA,MAAAA,EAAA,CAA0B,UAAA,CAAA,EACZ,QAAA,CACH,CACP,MAAA,OACS,KAAA,YACD,EACR,CACA,MAAA,KACS,KAAA,OACD,EACR,CACA,MAAA,OACS,KAAA,MACD,EACR,CACA,MAAA,KACS,KAAA,QACD,CACR,EACF,UAAA,GACW,KAAA,MACL,WAAA,CACM,UAAA,GACC,WAAA,CAAA,GAAA,GAAA,EAAA,EACY,MAAA,GAChB,aAAA,EACO,OAAA,iCACN,EACV,iBAAA,OACkB"}
--------------------------------------------------------------------------------
/dist/assets/index-85c0c3d6.js:
--------------------------------------------------------------------------------
1 | import{E as p}from"./el-scrollbar-47c15925.js";import{C as n}from"./index-41323360.js";import{d as r,a as s,c as i,B as e,w as a,C as l,D as _,u as c,af as m,Z as d}from"./index-5157ca21.js";import"./el-checkbox-7864edf7.js";import"./use-form-item-c41ec946.js";import"./el-tag-87ada828.js";import"./el-tooltip-01852e75.js";const u={id:"container"},f=r({__name:"index",setup(x){const t={tableData:[],columns:[{label:"创建时间",prop:"createTime"},{label:"名称",prop:"name"},{label:"实体视图类型",prop:"type"},{label:"客户",prop:"customr"},{fixed:"right",label:"公开",prop:"public"}],maxHeight:"",name:"实体视图",expend:!1,pagination:{page_size:10,page_sizes:[10,20,50],total:21,current_page:1,layout:"total, sizes, prev, pager, next"},emptyDescription:"未发现实体视图"};return(b,g)=>{const o=p;return s(),i("main",u,[e(n,l(_(t)),{table_head_right:a(()=>[e(o,null,{default:a(()=>[e(c(m))]),_:1})]),_:1},16)])}}});const E=d(f,[["__scopeId","data-v-5f1e31e8"]]);export{E as default};
2 | //# sourceMappingURL=index-85c0c3d6.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/index-85c0c3d6.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index-85c0c3d6.js","sources":["../../src/views/entity/entity_view/src/views/entity/entity_view/index.vue"],"sourcesContent":["\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n"],"names":["tableProps"],"mappings":"yXAaA,MAAAA,EAAA,CAA0B,UAAA,CAAA,EACZ,QAAA,CACH,CACP,MAAA,OACS,KAAA,YACD,EACR,CACA,MAAA,KACS,KAAA,MACD,EACR,CACA,MAAA,SACS,KAAA,MACD,EACR,CACA,MAAA,KACS,KAAA,SACD,EACR,CACA,MAAA,QACS,MAAA,KACA,KAAA,QACD,CACR,EACF,UAAA,GACW,KAAA,OACL,OAAA,GACE,WAAA,CACI,UAAA,GACC,WAAA,CAAA,GAAA,GAAA,EAAA,EACY,MAAA,GAChB,aAAA,EACO,OAAA,iCACN,EACV,iBAAA,SACkB"}
--------------------------------------------------------------------------------
/dist/assets/index-861b5711.css:
--------------------------------------------------------------------------------
1 | #bg[data-v-8a7c0baa]{width:100%;height:100%;margin:auto}
2 |
--------------------------------------------------------------------------------
/dist/assets/index-87ef9524.js:
--------------------------------------------------------------------------------
1 | import{f as R}from"./el-scrollbar-47c15925.js";import{E as J,a as O}from"./el-checkbox-7864edf7.js";import{E as T}from"./el-button-ce6a7349.js";import{_ as F}from"./logo_title_white-357c254f.js";import{d as h,a as y,g as $,w as i,b as L,T as A,Z as C,N as w,r as b,c as V,B as s,f as l,W as u,u as t,a2 as v,j as G,a3 as j,a4 as k,a5 as I,$ as D,a0 as M}from"./index-5157ca21.js";import{u as W}from"./user-f5598cef.js";import"./use-form-item-c41ec946.js";import"./use-global-config-40970ff6.js";const Z=h({__name:"index",props:{name:{default:"fade",type:String},mode:{default:"out-in",type:String}},setup(_){const p=_;return(a,d)=>(y(),$(A,{name:p.name,mode:p.mode},{default:i(()=>[L(a.$slots,"default",{},void 0,!0)]),_:3},8,["name","mode"]))}});const q=C(Z,[["__scopeId","data-v-1d780b32"]]),g=_=>(D("data-v-7090950c"),_=_(),M(),_),H={class:"container"},K=g(()=>l("header",{id:"login_logo"},[l("img",{id:"img","aria-label":"logo",src:F,alt:"login_icon"})],-1)),P=g(()=>l("label",{id:"label"},"Log in to see ThingsBoard in action",-1)),Q={id:"login_btn"},X=g(()=>l("fieldset",{id:"login_divider"},[l("section",{class:"left"}),l("section",{class:"center"},"或"),l("section",{class:"right"})],-1)),Y={key:0,id:"sign_up"},ee={id:"registry_operate"},se=g(()=>l("legend",{id:"sign_up_title"},"注册账号",-1)),oe={id:"fullname"},te=g(()=>l("span",{id:"place"}," ",-1)),le={key:1},ae={id:"login_form"},ie={id:"login_operate"},ne={id:"login_submit"},de=h({__name:"index",setup(_){const p=W(),a=w({userName:"",password:""});let d=b(!1),N=localStorage.getItem("isRemeber");if(N&&(d.value=JSON.parse(N),d.value)){const f=localStorage.getItem("userInfo");if(!f)d.value=!1;else{const{userName:e,password:n}=JSON.parse(f);a.password=n,a.userName=e}}let r=w({firstName:"",lastName:"",password:"",email:""}),x=b(!1),S=b(!1),m=b(!1);async function U(){await p.userLogin(a)&&(localStorage.setItem("userInfo",JSON.stringify(a)),localStorage.setItem("isAuthenticated",JSON.stringify(!0)),localStorage.setItem("isRemeber",JSON.stringify(d.value)),j.push({name:"Layout"}))}async function B(){x.value=!0;let f=await p.userRegistry(r);S.value=!!f,a.password=p.user_message.password,a.userName=p.user_message.userName,x.value=!1}return(f,e)=>{const n=T,c=J,E=O,z=R;return y(),V("div",H,[s(z,{height:"800px",id:"login_container"},{default:i(()=>[l("form",null,[K,P,l("fieldset",Q,[s(n,{disabled:"",class:"elb",size:"default",onClick:e[0]||(e[0]=()=>{})},{default:i(()=>[u(" Google登录 ")]),_:1}),s(n,{disabled:"",class:"elb",size:"default",onClick:e[1]||(e[1]=()=>{})},{default:i(()=>[u(" Facebook登录 ")]),_:1}),s(n,{disabled:"",class:"elb",size:"default",onClick:e[2]||(e[2]=()=>{})},{default:i(()=>[u(" Github登录 ")]),_:1}),s(n,{disabled:"",class:"elb",size:"default",onClick:e[3]||(e[3]=()=>{})},{default:i(()=>[u(" Apple登录 ")]),_:1})]),X,s(q,{name:"bounce"},{default:i(()=>[t(m)?(y(),V("fieldset",Y,[l("section",ee,[se,s(n,{size:"default",onClick:e[4]||(e[4]=o=>v(m)?m.value=!1:m=!1),text:""},{default:i(()=>[u(" 返回登录 ")]),_:1})]),l("section",oe,[s(c,{modelValue:t(r).firstName,"onUpdate:modelValue":e[5]||(e[5]=o=>t(r).firstName=o),placeholder:"姓"},null,8,["modelValue"]),te,s(c,{modelValue:t(r).lastName,"onUpdate:modelValue":e[6]||(e[6]=o=>t(r).lastName=o),placeholder:"名"},null,8,["modelValue"])]),s(c,{"prefix-icon":t(k),modelValue:t(r).email,"onUpdate:modelValue":e[7]||(e[7]=o=>t(r).email=o),type:"email",placeholder:"用户名(电子邮件)*"},null,8,["prefix-icon","modelValue"]),s(c,{"prefix-icon":t(I),"show-password":"",modelValue:t(r).password,"onUpdate:modelValue":e[8]||(e[8]=o=>t(r).password=o),type:"password",placeholder:"密码"},null,8,["prefix-icon","modelValue"]),s(n,{id:"registry",type:"primary",onClick:B,loading:t(x)},{default:i(()=>[u(G(t(S)?"注册成功":"注册"),1)]),_:1},8,["loading"])])):(y(),V("fieldset",le,[l("fieldset",ae,[s(c,{modelValue:a.userName,"onUpdate:modelValue":e[9]||(e[9]=o=>a.userName=o),placeholder:"用户名(电子邮件)*",type:"email","prefix-icon":t(k)},null,8,["modelValue","prefix-icon"]),s(c,{modelValue:a.password,"onUpdate:modelValue":e[10]||(e[10]=o=>a.password=o),placeholder:"密码",type:"password","show-password":"","prefix-icon":t(I)},null,8,["modelValue","prefix-icon"])]),l("fieldset",ie,[s(E,{modelValue:t(d),"onUpdate:modelValue":e[11]||(e[11]=o=>v(d)?d.value=o:d=o),label:"记住密码"},null,8,["modelValue"]),s(n,{text:"",size:"default",onClick:e[12]||(e[12]=o=>v(m)?m.value=!0:m=!0)},{default:i(()=>[u(" 注册账号 ")]),_:1})]),l("fieldset",ne,[s(n,{id:"submit",type:"primary",onClick:U},{default:i(()=>[u(" 登录 ")]),_:1})])]))]),_:1})])]),_:1})])}}});const be=C(de,[["__scopeId","data-v-7090950c"]]);export{be as default};
2 | //# sourceMappingURL=index-87ef9524.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/index-8e53beb4.js:
--------------------------------------------------------------------------------
1 | import{Z as e,a as _,c}from"./index-5157ca21.js";const n={},t={class:"container"};function s(o,a){return _(),c("div",t)}const d=e(n,[["render",s],["__scopeId","data-v-64f6f5b9"]]);export{d as default};
2 | //# sourceMappingURL=index-8e53beb4.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/index-8e53beb4.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index-8e53beb4.js","sources":["../../src/views/advanced_feature/version_control/index.vue"],"sourcesContent":["\r\n\r\n\r\n \r\n\r\n\r\n\r\n"],"names":["_sfc_render","_ctx","_cache"],"mappings":"kFAGE,SAAAA,EAAAC,EAAAC,EAAA"}
--------------------------------------------------------------------------------
/dist/assets/index-8ffda740.css:
--------------------------------------------------------------------------------
1 | .container[data-v-8af4132b]{display:flex;background-color:#fff;flex-direction:column}
2 |
--------------------------------------------------------------------------------
/dist/assets/index-9a3907bd.css:
--------------------------------------------------------------------------------
1 | #container[data-v-f4cdae04]{width:100%;height:100%;background-color:#fff;padding:16px}#container .el-icon[data-v-f4cdae04]{color:#f79a7e;font-size:24px}#container .el-icon[data-v-f4cdae04]:hover{cursor:pointer;color:#ff6433}
2 |
--------------------------------------------------------------------------------
/dist/assets/index-a197a568.js:
--------------------------------------------------------------------------------
1 | import{E as s}from"./el-scrollbar-47c15925.js";import{C as l}from"./index-41323360.js";import"./el-tooltip-01852e75.js";import{E as c}from"./el-popover-184dd66d.js";import{E as _}from"./el-button-ce6a7349.js";import{d as i,a as m,c as d,B as e,w as t,C as f,D as u,f as b,u as o,W as x,ac as g,af as h,Z as v}from"./index-5157ca21.js";import"./el-checkbox-7864edf7.js";import"./use-form-item-c41ec946.js";import"./el-tag-87ada828.js";import"./dropdown-77bdf979.js";import"./use-global-config-40970ff6.js";const E={id:"container"},y={id:"filter"},B=i({__name:"index",setup(C){const a={tableData:[],columns:[{label:"创建时间",prop:"createTime"},{label:"名称",prop:"name"},{label:"配置类型",prop:"type"},{label:"传输方式",prop:"transformMethod"},{label:"说明",prop:"desc"},{label:"默认",prop:"default"}],maxHeight:"",name:"设备配置",expend:!1,pagination:{page_size:10,page_sizes:[10,20,50],total:21,current_page:1,layout:"total, sizes, prev, pager, next"},emptyDescription:"未找到设备配置"};return(z,D)=>{const r=_,n=c,p=s;return m(),d("main",E,[e(l,f(u(a)),{table_head_left:t(()=>[b("section",y,[e(n,{placement:"bottom",trigger:"click"},{reference:t(()=>[e(r,{class:"m-2",icon:o(g)},{default:t(()=>[x("Device Filter")]),_:1},8,["icon"])]),_:1})])]),table_head_right:t(()=>[e(p,null,{default:t(()=>[e(o(h))]),_:1})]),_:1},16)])}}});const W=v(B,[["__scopeId","data-v-04e2942c"]]);export{W as default};
2 | //# sourceMappingURL=index-a197a568.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/index-a197a568.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index-a197a568.js","sources":["../../src/views/config/device_config/src/views/config/device_config/index.vue"],"sourcesContent":["\r\n \r\n \r\n \r\n \r\n \r\n \r\n Device Filter\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n"],"names":["tableProps"],"mappings":"+jBAsBA,MAAAA,EAAA,CAA0B,UAAA,CAAA,EACZ,QAAA,CACH,CACP,MAAA,OACS,KAAA,YACD,EACR,CACA,MAAA,KACS,KAAA,MACD,EACR,CACA,MAAA,OACS,KAAA,MACD,EACR,CACA,MAAA,OACS,KAAA,iBACD,EACR,CACA,MAAA,KACS,KAAA,MACD,EACR,CACA,MAAA,KACS,KAAA,SACD,CACR,EACF,UAAA,GACW,KAAA,OACL,OAAA,GACE,WAAA,CACI,UAAA,GACC,WAAA,CAAA,GAAA,GAAA,EAAA,EACY,MAAA,GAChB,aAAA,EACO,OAAA,iCACN,EACV,iBAAA,SACkB"}
--------------------------------------------------------------------------------
/dist/assets/index-a24e27d3.js:
--------------------------------------------------------------------------------
1 | import{Z as _,a as e,c}from"./index-5157ca21.js";const t="/Error404.svg";const o={},a={id:"bg",src:t,alt:"404_Not_Found"};function s(n,r){return e(),c("img",a)}const i=_(o,[["render",s],["__scopeId","data-v-8a7c0baa"]]);export{i as default};
2 | //# sourceMappingURL=index-a24e27d3.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/index-a24e27d3.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index-a24e27d3.js","sources":["../../../../../../Error404.svg","../../src/views/404/index.vue"],"sourcesContent":["export default \"__VITE_PUBLIC_ASSET__bf9bee4f__\"","\r\n
\r\n\r\n\r\n"],"names":["_imports_0","_hoisted_1","_sfc_render","_ctx","_cache"],"mappings":"iDAAA,MAAeA,EAAA,2BCCRC,EAAA,CAAQ,GAAA,KAAoB,IAAAD,uBAAjC,SAAAE,EAAAC,EAAAC,EAAA"}
--------------------------------------------------------------------------------
/dist/assets/index-a7883952.css:
--------------------------------------------------------------------------------
1 | .container[data-v-04b11a6e]{display:flex;background-color:#fff;flex-direction:column}
2 |
--------------------------------------------------------------------------------
/dist/assets/index-a881b489.css:
--------------------------------------------------------------------------------
1 | #main{width:100%;height:99vh}#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0px;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;-webkit-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .spinner,.nprogress-custom-parent #nprogress .bar{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}*,*:after,*:before{box-sizing:border-box;outline:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{font:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline;border:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}table{border-spacing:0;border-collapse:collapse}input,textarea,button{font-family:inhert;font-size:inherit;color:inherit}select{text-indent:.01px;text-overflow:"";border:0;border-radius:0;-webkit-appearance:none;-moz-appearance:none}select::-ms-expand{display:none}code,pre{font-family:monospace,monospace;font-size:1em}
2 |
--------------------------------------------------------------------------------
/dist/assets/index-af569a1a.js:
--------------------------------------------------------------------------------
1 | import{E as p}from"./el-scrollbar-47c15925.js";import{C as r}from"./index-41323360.js";import{d as n,a as s,c as l,B as e,w as a,C as i,D as _,u as c,af as m,Z as d}from"./index-5157ca21.js";import"./el-checkbox-7864edf7.js";import"./use-form-item-c41ec946.js";import"./el-tag-87ada828.js";import"./el-tooltip-01852e75.js";const u={id:"container"},b=n({__name:"index",setup(f){const t={tableData:[],columns:[{label:"创建时间",prop:"createTime"},{label:"名称",prop:"name"},{label:"边缘类型",prop:"type"},{label:"标签",prop:"label"},{label:"客户",prop:"customr"},{fixed:"right",label:"公开",prop:"public"}],maxHeight:"",name:"边缘实例",expend:!1,pagination:{page_size:10,page_sizes:[10,20,50],total:21,current_page:1,layout:"total, sizes, prev, pager, next"},emptyDescription:"未找到边缘"};return(x,g)=>{const o=p;return s(),l("main",u,[e(r,i(_(t)),{table_head_right:a(()=>[e(o,null,{default:a(()=>[e(c(m))]),_:1})]),_:1},16)])}}});const E=d(b,[["__scopeId","data-v-66cd12b8"]]);export{E as default};
2 | //# sourceMappingURL=index-af569a1a.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/index-af569a1a.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index-af569a1a.js","sources":["../../src/views/edge_manage/instances/src/views/edge_manage/instances/index.vue"],"sourcesContent":["\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n"],"names":["tableProps"],"mappings":"yXAaA,MAAAA,EAAA,CAA0B,UAAA,CAAA,EACZ,QAAA,CACH,CACP,MAAA,OACS,KAAA,YACD,EACR,CACA,MAAA,KACS,KAAA,MACD,EACR,CACA,MAAA,OACS,KAAA,MACD,EACR,CACA,MAAA,KACS,KAAA,OACD,EACR,CACA,MAAA,KACS,KAAA,SACD,EACR,CACA,MAAA,QACS,MAAA,KACA,KAAA,QACD,CACR,EACF,UAAA,GACW,KAAA,OACL,OAAA,GACE,WAAA,CACI,UAAA,GACC,WAAA,CAAA,GAAA,GAAA,EAAA,EACY,MAAA,GAChB,aAAA,EACO,OAAA,iCACN,EACV,iBAAA,OACkB"}
--------------------------------------------------------------------------------
/dist/assets/index-b4b34e56.js:
--------------------------------------------------------------------------------
1 | import"./el-scrollbar-47c15925.js";import"./el-tooltip-01852e75.js";import{E as r}from"./el-popover-184dd66d.js";import{E as n}from"./el-button-ce6a7349.js";import{C as s}from"./index-41323360.js";import{d as i,a as l,c as _,B as e,w as t,C as c,D as m,u as d,W as u,ad as f,Z as b}from"./index-5157ca21.js";import"./use-form-item-c41ec946.js";import"./dropdown-77bdf979.js";import"./use-global-config-40970ff6.js";import"./el-checkbox-7864edf7.js";import"./el-tag-87ada828.js";const x={id:"container"},g=i({__name:"index",setup(v){const o={tableData:[],columns:[{label:"时间戳",prop:"timestamp"},{label:"实体类型",prop:"entityType"},{label:"实体名称",prop:"name"},{label:"用户",prop:"email"},{label:"类型",prop:"type"},{label:"状态",prop:"status"}],name:"",maxHeight:"",pagination:{page_size:10,page_sizes:[10,20,50],total:21,current_page:1,layout:"total, sizes, prev, pager, next"},emptyDescription:"未找到日志"};return(y,h)=>{const a=n,p=r;return l(),_("main",x,[e(s,c(m(o)),{table_head_left:t(()=>[e(p,{placement:"bottom",trigger:"click"},{reference:t(()=>[e(a,{class:"m-2",icon:d(f)},{default:t(()=>[u("最后一天")]),_:1},8,["icon"])]),_:1})]),_:1},16)])}}});const H=b(g,[["__scopeId","data-v-86298574"]]);export{H as default};
2 | //# sourceMappingURL=index-b4b34e56.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/index-b4b34e56.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index-b4b34e56.js","sources":["../../src/views/secure/audit_log/src/views/secure/audit_log/index.vue"],"sourcesContent":["\r\n \r\n \r\n \r\n \r\n \r\n 最后一天\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n"],"names":["tableProps"],"mappings":"ohBAiBA,MAAAA,EAAA,CAA0B,UAAA,CAAA,EACZ,QAAA,CACH,CACP,MAAA,MACS,KAAA,WACD,EACR,CACA,MAAA,OACS,KAAA,YACD,EACR,CACA,MAAA,OACS,KAAA,MACD,EACR,CACA,MAAA,KACS,KAAA,OACD,EACR,CACA,MAAA,KACS,KAAA,MACD,EACR,CACA,MAAA,KACS,KAAA,QACD,CACR,EACF,KAAA,GACM,UAAA,GACK,WAAA,CACC,UAAA,GACC,WAAA,CAAA,GAAA,GAAA,EAAA,EACY,MAAA,GAChB,aAAA,EACO,OAAA,iCACN,EACV,iBAAA,OACkB"}
--------------------------------------------------------------------------------
/dist/assets/index-c29f998c.js:
--------------------------------------------------------------------------------
1 | import{Z as e,a as _,c}from"./index-5157ca21.js";const n={},t={class:"container"};function s(a,o){return _(),c("div",t)}const d=e(n,[["render",s],["__scopeId","data-v-04b11a6e"]]);export{d as default};
2 | //# sourceMappingURL=index-c29f998c.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/index-c29f998c.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index-c29f998c.js","sources":["../../src/views/api_statistics/index.vue"],"sourcesContent":["\r\n\r\n\r\n \r\n\r\n\r\n\r\n"],"names":["_sfc_render","_ctx","_cache"],"mappings":"kFAGE,SAAAA,EAAAC,EAAAC,EAAA"}
--------------------------------------------------------------------------------
/dist/assets/index-c5ce11fa.css:
--------------------------------------------------------------------------------
1 | #container[data-v-85a13664]{width:100%;height:100%;background-color:#fff;padding:16px}
2 |
--------------------------------------------------------------------------------
/dist/assets/index-cd4f1ed4.css:
--------------------------------------------------------------------------------
1 | #container[data-v-1d3b360f]{width:100%;height:100%;background-color:#fff;padding:16px}#container .el-icon[data-v-1d3b360f]{color:#f79a7e;font-size:24px}#container .el-icon[data-v-1d3b360f]:hover{cursor:pointer;color:#ff6433}
2 |
--------------------------------------------------------------------------------
/dist/assets/index-ce6e9686.css:
--------------------------------------------------------------------------------
1 | #container[data-v-eb70865e]{width:100%;height:100%;background-color:#fff;padding:16px}
2 |
--------------------------------------------------------------------------------
/dist/assets/index-d0a639e4.css:
--------------------------------------------------------------------------------
1 | #container[data-v-ba76f3eb]{width:100%;height:100%;background-color:#fff;padding:16px}#container .el-icon[data-v-ba76f3eb]{color:#f79a7e;font-size:24px}#container .el-icon[data-v-ba76f3eb]:hover{cursor:pointer;color:#ff6433}
2 |
--------------------------------------------------------------------------------
/dist/assets/index-d55cf406.js:
--------------------------------------------------------------------------------
1 | import{Z as e,a as _,c}from"./index-5157ca21.js";const n={},t={class:"container"};function s(o,a){return _(),c("div",t)}const r=e(n,[["render",s],["__scopeId","data-v-e79510d8"]]);export{r as default};
2 | //# sourceMappingURL=index-d55cf406.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/index-d55cf406.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index-d55cf406.js","sources":["../../src/views/settings/index.vue"],"sourcesContent":["\r\n\r\n\r\n \r\n\r\n\r\n\r\n"],"names":["_sfc_render","_ctx","_cache"],"mappings":"kFAGE,SAAAA,EAAAC,EAAAC,EAAA"}
--------------------------------------------------------------------------------
/dist/assets/index-e713de8e.js:
--------------------------------------------------------------------------------
1 | import{E as n}from"./el-scrollbar-47c15925.js";import{C as s}from"./index-41323360.js";import"./el-tooltip-01852e75.js";import{E as i}from"./el-popover-184dd66d.js";import{E as c}from"./el-button-ce6a7349.js";import{d as _,a as m,c as d,B as e,w as t,C as f,D as u,f as b,u as a,W as g,ac as x,af as h,Z as v}from"./index-5157ca21.js";import"./el-checkbox-7864edf7.js";import"./use-form-item-c41ec946.js";import"./el-tag-87ada828.js";import"./dropdown-77bdf979.js";import"./use-global-config-40970ff6.js";const E={id:"container"},y={id:"filter"},B=_({__name:"index",setup(C){const o={tableData:[],columns:[{label:"创建时间",prop:"createTime"},{label:"名称",prop:"name"},{label:"设备配置",prop:"config"},{label:"标签",prop:"label"},{label:"State",prop:"state"},{label:"客户",prop:"customr"},{label:"公开",prop:"public"},{label:"是否网关",prop:"gateway"}],maxHeight:"",name:"设备",expend:!1,pagination:{page_size:10,page_sizes:[10,20,50],total:21,current_page:1,layout:"total, sizes, prev, pager, next"},emptyDescription:"未发现设备"};return(z,D)=>{const r=c,p=i,l=n;return m(),d("main",E,[e(s,f(u(o)),{table_head_left:t(()=>[b("section",y,[e(p,{placement:"bottom",trigger:"click"},{reference:t(()=>[e(r,{class:"m-2",icon:a(x)},{default:t(()=>[g("Device Filter")]),_:1},8,["icon"])]),_:1})])]),table_head_right:t(()=>[e(l,null,{default:t(()=>[e(a(h))]),_:1})]),_:1},16)])}}});const W=v(B,[["__scopeId","data-v-252eab1e"]]);export{W as default};
2 | //# sourceMappingURL=index-e713de8e.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/index-e713de8e.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index-e713de8e.js","sources":["../../src/views/entity/device/src/views/entity/device/index.vue"],"sourcesContent":["\r\n \r\n \r\n \r\n \r\n \r\n \r\n Device Filter\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n"],"names":["tableProps"],"mappings":"+jBAsBA,MAAAA,EAAA,CAA0B,UAAA,CAAA,EACZ,QAAA,CACH,CACP,MAAA,OACS,KAAA,YACD,EACR,CACA,MAAA,KACS,KAAA,MACD,EACR,CACA,MAAA,OACS,KAAA,QACD,EACR,CACA,MAAA,KACS,KAAA,OACD,EACR,CACA,MAAA,QACS,KAAA,OACD,EACR,CACA,MAAA,KACS,KAAA,SACD,EACR,CACA,MAAA,KACS,KAAA,QACD,EACR,CACA,MAAA,OACS,KAAA,SACD,CACR,EACF,UAAA,GACW,KAAA,KACL,OAAA,GACE,WAAA,CACI,UAAA,GACC,WAAA,CAAA,GAAA,GAAA,EAAA,EACY,MAAA,GAChB,aAAA,EACO,OAAA,iCACN,EACV,iBAAA,OACkB"}
--------------------------------------------------------------------------------
/dist/assets/index-ef1dbbe3.css:
--------------------------------------------------------------------------------
1 | #container[data-v-032617fc]{width:100%;height:100%;background-color:#fff;padding:16px}#container .el-icon[data-v-032617fc]{color:#f79a7e;font-size:24px}#container .el-icon[data-v-032617fc]:hover{cursor:pointer;color:#ff6433}
2 |
--------------------------------------------------------------------------------
/dist/assets/index-f1908a3d.js:
--------------------------------------------------------------------------------
1 | import{E as p}from"./el-scrollbar-47c15925.js";import{C as l}from"./index-41323360.js";import{d as r,a as n,c as s,B as e,w as a,C as i,D as _,u as c,af as m,Z as d}from"./index-5157ca21.js";import"./el-checkbox-7864edf7.js";import"./use-form-item-c41ec946.js";import"./el-tag-87ada828.js";import"./el-tooltip-01852e75.js";const u={id:"container"},f=r({__name:"index",setup(b){const t={tableData:[],columns:[{label:"创建时间",prop:"createTime"},{label:"标题",prop:"title"},{label:"版本",prop:"version"},{label:"版本标签",prop:"label"},{label:"包类型",prop:"type"},{label:"直接URL",prop:"url"},{label:"文件名",prop:"filename"},{label:"文件大小",prop:"size"},{fixed:"right",label:"校验和",prop:"check"}],maxHeight:"",name:"包仓库",expend:!1,pagination:{page_size:10,page_sizes:[10,20,50],total:21,current_page:1,layout:"total, sizes, prev, pager, next"},emptyDescription:"未找到包"};return(x,g)=>{const o=p;return n(),s("main",u,[e(l,i(_(t)),{table_head_right:a(()=>[e(o,null,{default:a(()=>[e(c(m))]),_:1})]),_:1},16)])}}});const D=d(f,[["__scopeId","data-v-f4cdae04"]]);export{D as default};
2 | //# sourceMappingURL=index-f1908a3d.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/index-f1908a3d.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index-f1908a3d.js","sources":["../../src/views/advanced_feature/ota/src/views/advanced_feature/ota/index.vue"],"sourcesContent":["\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n"],"names":["tableProps"],"mappings":"yXAaA,MAAAA,EAAA,CAA0B,UAAA,CAAA,EACZ,QAAA,CACH,CACP,MAAA,OACS,KAAA,YACD,EACR,CACA,MAAA,KACS,KAAA,OACD,EACR,CACA,MAAA,KACS,KAAA,SACD,EACR,CACA,MAAA,OACS,KAAA,OACD,EACR,CACA,MAAA,MACS,KAAA,MACD,EACR,CACA,MAAA,QACS,KAAA,KACD,EACR,CACA,MAAA,MACS,KAAA,UACD,EACR,CACA,MAAA,OACS,KAAA,MACD,EACR,CACA,MAAA,QACS,MAAA,MACA,KAAA,OACD,CACR,EACF,UAAA,GACW,KAAA,MACL,OAAA,GACE,WAAA,CACI,UAAA,GACC,WAAA,CAAA,GAAA,GAAA,EAAA,EACY,MAAA,GAChB,aAAA,EACO,OAAA,iCACN,EACV,iBAAA,MACkB"}
--------------------------------------------------------------------------------
/dist/assets/index-f5221158.css:
--------------------------------------------------------------------------------
1 | .container[data-v-64f6f5b9]{display:flex;background-color:#fff;flex-direction:column}
2 |
--------------------------------------------------------------------------------
/dist/assets/index-f63efcef.js:
--------------------------------------------------------------------------------
1 | import{E as p}from"./el-scrollbar-47c15925.js";import{C as n}from"./index-41323360.js";import{d as s,a as r,c as _,B as e,w as a,C as i,D as l,u as c,af as m,Z as d}from"./index-5157ca21.js";import"./el-checkbox-7864edf7.js";import"./use-form-item-c41ec946.js";import"./el-tag-87ada828.js";import"./el-tooltip-01852e75.js";const u={id:"container"},b=s({__name:"index",setup(f){const t={tableData:[],columns:[{label:"创建时间",prop:"createTime"},{label:"名称",prop:"name"},{label:"配置类型",prop:"type",width:"300px"},{label:"是否根链",prop:"root"}],maxHeight:"",name:"规则链库",expend:!1,pagination:{page_size:10,page_sizes:[10,20,50],total:21,current_page:1,layout:"total, sizes, prev, pager, next"},emptyDescription:"未找到规则链"};return(x,g)=>{const o=p;return r(),_("main",u,[e(n,i(l(t)),{table_head_right:a(()=>[e(o,null,{default:a(()=>[e(c(m))]),_:1})]),_:1},16)])}}});const D=d(b,[["__scopeId","data-v-bdd4c15b"]]);export{D as default};
2 | //# sourceMappingURL=index-f63efcef.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/index-f63efcef.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index-f63efcef.js","sources":["../../src/views/rulechain/src/views/rulechain/index.vue"],"sourcesContent":["\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n"],"names":["tableProps"],"mappings":"yXAaA,MAAAA,EAAA,CAA0B,UAAA,CAAA,EACZ,QAAA,CACH,CACP,MAAA,OACS,KAAA,YACD,EACR,CACA,MAAA,KACS,KAAA,MACD,EACR,CACA,MAAA,OACS,KAAA,OACD,MAAA,OACC,EACT,CACA,MAAA,OACS,KAAA,MACD,CACR,EACF,UAAA,GACW,KAAA,OACL,OAAA,GACE,WAAA,CACI,UAAA,GACC,WAAA,CAAA,GAAA,GAAA,EAAA,EACY,MAAA,GAChB,aAAA,EACO,OAAA,iCACN,EACV,iBAAA,QACkB"}
--------------------------------------------------------------------------------
/dist/assets/index-f9342d74.js:
--------------------------------------------------------------------------------
1 | import{E as s}from"./el-scrollbar-47c15925.js";import{C as n}from"./index-41323360.js";import{d as p,a as r,c as _,B as e,w as t,C as i,D as l,u as c,af as m,Z as d}from"./index-5157ca21.js";import"./el-checkbox-7864edf7.js";import"./use-form-item-c41ec946.js";import"./el-tag-87ada828.js";import"./el-tooltip-01852e75.js";const u={id:"container"},f=p({__name:"index",setup(x){const a={tableData:[],columns:[{label:"创建时间",prop:"createTime"},{label:"标题",prop:"title"},{label:"系统",prop:"system"}],maxHeight:"",name:"部件库",expend:!1,pagination:{page_size:10,page_sizes:[10,20,50],total:21,current_page:1,layout:"total, sizes, prev, pager, next"},emptyDescription:"未找到部件"};return(g,b)=>{const o=s;return r(),_("main",u,[e(n,i(l(a)),{table_head_right:t(()=>[e(o,null,{default:t(()=>[e(c(m))]),_:1})]),_:1},16)])}}});const E=d(f,[["__scopeId","data-v-032617fc"]]);export{E as default};
2 | //# sourceMappingURL=index-f9342d74.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/index-f9342d74.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index-f9342d74.js","sources":["../../src/views/resources/widget/src/views/resources/widget/index.vue"],"sourcesContent":["\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n"],"names":["tableProps"],"mappings":"yXAaA,MAAAA,EAAA,CAA0B,UAAA,CAAA,EACZ,QAAA,CACH,CACP,MAAA,OACS,KAAA,YACD,EACR,CACA,MAAA,KACS,KAAA,OACD,EACR,CACA,MAAA,KACS,KAAA,QACD,CACR,EACF,UAAA,GACW,KAAA,MACL,OAAA,GACE,WAAA,CACI,UAAA,GACC,WAAA,CAAA,GAAA,GAAA,EAAA,EACY,MAAA,GAChB,aAAA,EACO,OAAA,iCACN,EACV,iBAAA,OACkB"}
--------------------------------------------------------------------------------
/dist/assets/index-ff9f8535.css:
--------------------------------------------------------------------------------
1 | #container[data-v-86298574]{width:100%;height:100%;background-color:#fff;padding:16px}#container .el-icon[data-v-86298574]{color:#f79a7e;font-size:24px}#container .el-icon[data-v-86298574]:hover{cursor:pointer;color:#ff6433}
2 |
--------------------------------------------------------------------------------
/dist/assets/logo_title_white-357c254f.js:
--------------------------------------------------------------------------------
1 | const t="/logo_title_white.svg";export{t as _};
2 | //# sourceMappingURL=logo_title_white-357c254f.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/logo_title_white-357c254f.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"logo_title_white-357c254f.js","sources":["../../../../../../logo_title_white.svg"],"sourcesContent":["export default \"__VITE_PUBLIC_ASSET__87ca0df1__\""],"names":["_imports_0"],"mappings":"AAAA,MAAeA,EAAA"}
--------------------------------------------------------------------------------
/dist/assets/use-form-item-c41ec946.js:
--------------------------------------------------------------------------------
1 | import{z as p,u as I,s as f,k as m,e as d,r as i,o as y,y as h,ax as j}from"./index-5157ca21.js";import{ac as w,as as D,ae as F}from"./el-scrollbar-47c15925.js";const E=({from:s,replacement:e,scope:n,version:a,ref:u,type:t="API"},c)=>{p(()=>I(c),o=>{},{immediate:!0})},v={prefix:Math.floor(Math.random()*1e4),current:0},K=Symbol("elIdInjection"),N=()=>m()?d(K,v):v,R=s=>{const e=N(),n=w();return f(()=>I(s)||`${n.value}-id-${e.prefix}-${e.current++}`)},U=()=>{const s=d(D,void 0),e=d(F,void 0);return{form:s,formItem:e}},k=(s,{formItemContext:e,disableIdGeneration:n,disableIdManagement:a})=>{n||(n=i(!1)),a||(a=i(!1));const u=i();let t;const c=f(()=>{var o;return!!(!s.label&&e&&e.inputIds&&((o=e.inputIds)==null?void 0:o.length)<=1)});return y(()=>{t=p([h(s,"id"),n],([o,l])=>{const r=o??(l?void 0:R().value);r!==u.value&&(e!=null&&e.removeInputId&&(u.value&&e.removeInputId(u.value),!(a!=null&&a.value)&&!l&&r&&e.addInputId(r)),u.value=r)},{immediate:!0})}),j(()=>{t&&t(),e!=null&&e.removeInputId&&u.value&&e.removeInputId(u.value)}),{isLabeledByFormItem:c,inputId:u}};export{E as a,U as b,N as c,k as d,R as u};
2 | //# sourceMappingURL=use-form-item-c41ec946.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/use-global-config-40970ff6.js:
--------------------------------------------------------------------------------
1 | import{u as m,F as x,g as C,G as I,H as _,I as z,J as y,K as b,S as K,L as d}from"./el-scrollbar-47c15925.js";import{r as S,s as o,u as c,p as G,k as f,e as N}from"./index-5157ca21.js";const g=Symbol(),i=S();function p(t,l=void 0){const n=f()?N(g,i):i;return t?o(()=>{var s,a;return(a=(s=n.value)==null?void 0:s[t])!=null?a:l}):n}function F(t,l){const n=p(),s=m(t,o(()=>{var e;return((e=n.value)==null?void 0:e.namespace)||x})),a=C(o(()=>{var e;return(e=n.value)==null?void 0:e.locale})),u=I(o(()=>{var e;return((e=n.value)==null?void 0:e.zIndex)||_})),r=o(()=>{var e;return c(l)||((e=n.value)==null?void 0:e.size)||""});return k(o(()=>c(n)||{})),{ns:s,locale:a,zIndex:u,size:r}}const k=(t,l,n=!1)=>{var s;const a=!!f(),u=a?p():void 0,r=(s=l==null?void 0:l.provide)!=null?s:a?G:void 0;if(!r)return;const e=o(()=>{const v=c(t);return u!=null&&u.value?E(u.value,v):v});return r(g,e),r(z,o(()=>e.value.locale)),r(y,o(()=>e.value.namespace)),r(b,o(()=>e.value.zIndex)),r(K,{size:o(()=>e.value.size||"")}),(n||!i.value)&&(i.value=e.value),e},E=(t,l)=>{var n;const s=[...new Set([...d(t),...d(l)])],a={};for(const u of s)a[u]=(n=l[u])!=null?n:t[u];return a};export{p as a,F as u};
2 | //# sourceMappingURL=use-global-config-40970ff6.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/vnode-2586cffd.js:
--------------------------------------------------------------------------------
1 | import{J as p,a6 as a,a8 as f,a9 as u}from"./index-5157ca21.js";const m=t=>{if(!a(t))return{};const o=t.props||{},e=(a(t.type)?t.type.props:void 0)||{},s={};return Object.keys(e).forEach(r=>{f(e[r],"default")&&(s[r]=e[r].default)}),Object.keys(o).forEach(r=>{s[u(r)]=o[r]}),s},n=t=>{const o=p(t)?t:[t],e=[];return o.forEach(s=>{var r;p(s)?e.push(...n(s)):a(s)&&p(s.children)?e.push(...n(s.children)):(e.push(s),a(s)&&((r=s.component)!=null&&r.subTree)&&e.push(...n(s.component.subTree)))}),e};export{n as f,m as g};
2 | //# sourceMappingURL=vnode-2586cffd.js.map
3 |
--------------------------------------------------------------------------------
/dist/assets/vnode-2586cffd.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"vnode-2586cffd.js","sources":["../../node_modules/element-plus/es/utils/vue/vnode.mjs"],"sourcesContent":["import { isVNode, Fragment, Text, Comment, openBlock, createBlock, createCommentVNode } from 'vue';\nimport { hasOwn, camelize, isArray } from '@vue/shared';\nimport '../objects.mjs';\nimport { debugWarn } from '../error.mjs';\n\nconst SCOPE = \"utils/vue/vnode\";\nvar PatchFlags = /* @__PURE__ */ ((PatchFlags2) => {\n PatchFlags2[PatchFlags2[\"TEXT\"] = 1] = \"TEXT\";\n PatchFlags2[PatchFlags2[\"CLASS\"] = 2] = \"CLASS\";\n PatchFlags2[PatchFlags2[\"STYLE\"] = 4] = \"STYLE\";\n PatchFlags2[PatchFlags2[\"PROPS\"] = 8] = \"PROPS\";\n PatchFlags2[PatchFlags2[\"FULL_PROPS\"] = 16] = \"FULL_PROPS\";\n PatchFlags2[PatchFlags2[\"HYDRATE_EVENTS\"] = 32] = \"HYDRATE_EVENTS\";\n PatchFlags2[PatchFlags2[\"STABLE_FRAGMENT\"] = 64] = \"STABLE_FRAGMENT\";\n PatchFlags2[PatchFlags2[\"KEYED_FRAGMENT\"] = 128] = \"KEYED_FRAGMENT\";\n PatchFlags2[PatchFlags2[\"UNKEYED_FRAGMENT\"] = 256] = \"UNKEYED_FRAGMENT\";\n PatchFlags2[PatchFlags2[\"NEED_PATCH\"] = 512] = \"NEED_PATCH\";\n PatchFlags2[PatchFlags2[\"DYNAMIC_SLOTS\"] = 1024] = \"DYNAMIC_SLOTS\";\n PatchFlags2[PatchFlags2[\"HOISTED\"] = -1] = \"HOISTED\";\n PatchFlags2[PatchFlags2[\"BAIL\"] = -2] = \"BAIL\";\n return PatchFlags2;\n})(PatchFlags || {});\nfunction isFragment(node) {\n return isVNode(node) && node.type === Fragment;\n}\nfunction isText(node) {\n return isVNode(node) && node.type === Text;\n}\nfunction isComment(node) {\n return isVNode(node) && node.type === Comment;\n}\nconst TEMPLATE = \"template\";\nfunction isTemplate(node) {\n return isVNode(node) && node.type === TEMPLATE;\n}\nfunction isValidElementNode(node) {\n return isVNode(node) && !isFragment(node) && !isComment(node);\n}\nfunction getChildren(node, depth) {\n if (isComment(node))\n return;\n if (isFragment(node) || isTemplate(node)) {\n return depth > 0 ? getFirstValidNode(node.children, depth - 1) : void 0;\n }\n return node;\n}\nconst getFirstValidNode = (nodes, maxDepth = 3) => {\n if (Array.isArray(nodes)) {\n return getChildren(nodes[0], maxDepth);\n } else {\n return getChildren(nodes, maxDepth);\n }\n};\nfunction renderIf(condition, ...args) {\n return condition ? renderBlock(...args) : createCommentVNode(\"v-if\", true);\n}\nfunction renderBlock(...args) {\n return openBlock(), createBlock(...args);\n}\nconst getNormalizedProps = (node) => {\n if (!isVNode(node)) {\n debugWarn(SCOPE, \"[getNormalizedProps] must be a VNode\");\n return {};\n }\n const raw = node.props || {};\n const type = (isVNode(node.type) ? node.type.props : void 0) || {};\n const props = {};\n Object.keys(type).forEach((key) => {\n if (hasOwn(type[key], \"default\")) {\n props[key] = type[key].default;\n }\n });\n Object.keys(raw).forEach((key) => {\n props[camelize(key)] = raw[key];\n });\n return props;\n};\nconst ensureOnlyChild = (children) => {\n if (!isArray(children) || children.length > 1) {\n throw new Error(\"expect to receive a single Vue element child\");\n }\n return children[0];\n};\nconst flattedChildren = (children) => {\n const vNodes = isArray(children) ? children : [children];\n const result = [];\n vNodes.forEach((child) => {\n var _a;\n if (isArray(child)) {\n result.push(...flattedChildren(child));\n } else if (isVNode(child) && isArray(child.children)) {\n result.push(...flattedChildren(child.children));\n } else {\n result.push(child);\n if (isVNode(child) && ((_a = child.component) == null ? void 0 : _a.subTree)) {\n result.push(...flattedChildren(child.component.subTree));\n }\n }\n });\n return result;\n};\n\nexport { PatchFlags, ensureOnlyChild, flattedChildren, getFirstValidNode, getNormalizedProps, isComment, isFragment, isTemplate, isText, isValidElementNode, renderBlock, renderIf };\n//# sourceMappingURL=vnode.mjs.map\n"],"names":["getNormalizedProps","node","isVNode","raw","type","props","key","hasOwn","camelize","flattedChildren","children","vNodes","isArray","result","child","_a"],"mappings":"gEA2DK,MAACA,EAAsBC,GAAS,CACnC,GAAI,CAACC,EAAQD,CAAI,EAEf,MAAO,GAET,MAAME,EAAMF,EAAK,OAAS,GACpBG,GAAQF,EAAQD,EAAK,IAAI,EAAIA,EAAK,KAAK,MAAQ,SAAW,CAAA,EAC1DI,EAAQ,CAAA,EACd,cAAO,KAAKD,CAAI,EAAE,QAASE,GAAQ,CAC7BC,EAAOH,EAAKE,CAAG,EAAG,SAAS,IAC7BD,EAAMC,CAAG,EAAIF,EAAKE,CAAG,EAAE,QAE7B,CAAG,EACD,OAAO,KAAKH,CAAG,EAAE,QAASG,GAAQ,CAChCD,EAAMG,EAASF,CAAG,CAAC,EAAIH,EAAIG,CAAG,CAClC,CAAG,EACMD,CACT,EAOMI,EAAmBC,GAAa,CACpC,MAAMC,EAASC,EAAQF,CAAQ,EAAIA,EAAW,CAACA,CAAQ,EACjDG,EAAS,CAAA,EACf,OAAAF,EAAO,QAASG,GAAU,CACxB,IAAIC,EACAH,EAAQE,CAAK,EACfD,EAAO,KAAK,GAAGJ,EAAgBK,CAAK,CAAC,EAC5BZ,EAAQY,CAAK,GAAKF,EAAQE,EAAM,QAAQ,EACjDD,EAAO,KAAK,GAAGJ,EAAgBK,EAAM,QAAQ,CAAC,GAE9CD,EAAO,KAAKC,CAAK,EACbZ,EAAQY,CAAK,KAAOC,EAAKD,EAAM,YAAc,MAAgBC,EAAG,UAClEF,EAAO,KAAK,GAAGJ,EAAgBK,EAAM,UAAU,OAAO,CAAC,EAG/D,CAAG,EACMD,CACT","x_google_ignoreList":[0]}
--------------------------------------------------------------------------------
/dist/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | ThingsBoard
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/dist/thingsboard.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/776488326/ThingsBoard-Vue3/ad50547a7ba92ad914600225733df92e8541bc5b/dist/thingsboard.ico
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | ThingsBoard
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/mock/login.ts:
--------------------------------------------------------------------------------
1 | import { login_url, sign_up_url, logout_url } from '../src/api/api_url'
2 | import { MockMethod } from 'vite-plugin-mock'
3 | import type { Counter } from '../src/api/user/type'
4 | import type { Success, Fail } from '../src/api/common_type'
5 | import fs from 'fs'
6 | // #region 全局变量定义
7 |
8 | const successTemplate = (
9 | data: Object | null,
10 | success_response = { code: 200, message: 'success' },
11 | ): Success => {
12 | const { code, message } = success_response
13 | return {
14 | code,
15 | data,
16 | message,
17 | }
18 | }
19 |
20 | const failTemplate = (
21 | data: Object | null,
22 | fail_response = { code: 400, message: 'fail' },
23 | ): Fail => {
24 | const { code, message } = fail_response
25 | return {
26 | code,
27 | data,
28 | message,
29 | }
30 | }
31 |
32 | let counter: Counter[] | any = [
33 | {
34 | password: 'admin',
35 | email: 'admin',
36 | firstName: 'feng',
37 | lastName: 'liang',
38 | },
39 | ]
40 | counter = fs.readFileSync('./user_data.json')
41 | counter = JSON.parse(counter)
42 | // #endregion
43 |
44 | export default [
45 | {
46 | url: '/api' + login_url,
47 | method: 'post',
48 | response({ url, body, query, headers }) {
49 | const { userName, password } = body
50 | body.isAuthenticated = userName == 'admin' ? true : false
51 | if (
52 | counter.filter(
53 | (item) => item.email === userName && item.password === password,
54 | ).length
55 | ) {
56 | return successTemplate(body, { code: 200, message: '登录成功' })
57 | } else {
58 | return failTemplate(body, { code: 401, message: '账号密码无效' })
59 | }
60 | },
61 | },
62 | {
63 | url: '/api' + sign_up_url,
64 | method: 'post',
65 | response({ body }) {
66 | const { firstName, lastName, password, email } = body
67 | if (counter.some((item) => item.email === email)) {
68 | return failTemplate(null, { code: 400, message: '账号已注册' })
69 | } else {
70 | counter.push(body)
71 | fs.writeFileSync('./user_data.json', JSON.stringify(counter))
72 | return successTemplate({ userName: email, password })
73 | }
74 | },
75 | },
76 | {
77 | url: '/api' + logout_url,
78 | method: 'get',
79 | response({ body }) {
80 | return successTemplate(null, { code: 200, message: '注销成功!' })
81 | },
82 | },
83 | ] as MockMethod[]
84 |
--------------------------------------------------------------------------------
/mock/mockProdServer.ts:
--------------------------------------------------------------------------------
1 | // mockProdServer.ts
2 | import { createProdMockServer } from 'vite-plugin-mock/client'
3 |
4 | // 逐一导入您的mock.ts文件
5 | // 如果使用vite.mock.config.ts,只需直接导入文件
6 | // 可以使用 import.meta.glob功能来进行全部导入
7 | import login from './login'
8 |
9 | export function setupProdMockServer() {
10 | createProdMockServer([...login])
11 | }
12 |
--------------------------------------------------------------------------------
/mock/vite-plugin-mock.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'vite-plugin-mock' {}
2 | declare module 'vite-plugin-mock/client' {}
3 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ui-vue3",
3 | "private": true,
4 | "version": "0.0.0",
5 | "type": "module",
6 | "scripts": {
7 | "start": "vite",
8 | "build": "vue-tsc && vite build",
9 | "preview": "vite preview",
10 | "lint": "eslint src",
11 | "fix": "eslint src --fix",
12 | "lint:style": "stylelint src/**/*.{css,scss,vue} --cache --fix",
13 | "lint:eslint": "eslint src/**/*.{ts,vue} --cache --fix",
14 | "format": "prettier --write \"./**/*.{html,vue,ts,js,json,md}\"",
15 | "prepare": "husky install",
16 | "commitlint": "commitlint --config commitlint.config.cjs -e -V",
17 | "preinstall": "node ./scripts/preinstall.js"
18 | },
19 | "dependencies": {
20 | "@digitalacorn/vite-plugin-svg-icons": "^3.0.0-pre.1",
21 | "@element-plus/icons-vue": "^2.1.0",
22 | "axios": "^1.4.0",
23 | "element-plus": "^2.3.5",
24 | "mockjs": "^1.1.0",
25 | "nprogress": "^0.2.0",
26 | "pinia": "^2.1.3",
27 | "vite-plugin-mock": "^3.0.0",
28 | "vue": "^3.2.47",
29 | "vue-router": "^4.2.1"
30 | },
31 | "devDependencies": {
32 | "@babel/eslint-parser": "^7.21.8",
33 | "@commitlint/cli": "^17.6.3",
34 | "@commitlint/config-conventional": "^17.6.3",
35 | "@typescript-eslint/eslint-plugin": "^5.59.7",
36 | "@typescript-eslint/parser": "^5.59.7",
37 | "@vitejs/plugin-vue": "^4.1.0",
38 | "eslint": "^8.41.0",
39 | "eslint-config-prettier": "^8.8.0",
40 | "eslint-plugin-import": "^2.27.5",
41 | "eslint-plugin-node": "^11.1.0",
42 | "eslint-plugin-prettier": "^4.2.1",
43 | "eslint-plugin-vue": "^9.14.0",
44 | "husky": "^8.0.0",
45 | "postcss": "^8.4.23",
46 | "postcss-html": "^1.5.0",
47 | "postcss-scss": "^4.0.6",
48 | "prettier": "^2.8.8",
49 | "sass": "^1.62.1",
50 | "sass-loader": "^13.3.0",
51 | "stylelint": "^15.6.2",
52 | "stylelint-config-prettier": "^9.0.5",
53 | "stylelint-config-recess-order": "^4.0.0",
54 | "stylelint-config-recommended-scss": "^12.0.0",
55 | "stylelint-config-standard": "^33.0.0",
56 | "stylelint-config-standard-scss": "^9.0.0",
57 | "stylelint-config-standard-vue": "^1.0.0",
58 | "stylelint-order": "^6.0.3",
59 | "stylelint-scss": "^5.0.0",
60 | "typescript": "^5.0.2",
61 | "unplugin-auto-import": "^0.16.6",
62 | "unplugin-element-plus": "^0.7.2",
63 | "unplugin-vue-components": "^0.25.1",
64 | "vite": "^4.3.2",
65 | "vue-tsc": "^1.4.2"
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/proxy.conf.ts:
--------------------------------------------------------------------------------
1 | // @ts-nocheck
2 |
3 | /*
4 | * Copyright © 2016-2023 The Thingsboard Authors
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | const forwardUrl =
20 | 'https://www.fastmock.site/mock/6b534c087799fa15118aaafa4ea4769b'
21 | // const forwardUrl = 'http://172.26.240.1:9090'
22 | const wsForwardUrl = 'ws://127.0.0.1:4523/m1/2826700-0-default'
23 | // const wsForwardUrl = 'ws://172.26.240.1:9090'
24 | const ruleNodeUiforwardUrl = forwardUrl
25 |
26 | const PROXY_CONFIG = {
27 | '/api': {
28 | target: forwardUrl,
29 | secure: false,
30 | },
31 | '/static/rulenode': {
32 | target: ruleNodeUiforwardUrl,
33 | secure: false,
34 | },
35 | '/static/widgets': {
36 | target: forwardUrl,
37 | secure: false,
38 | },
39 | '/oauth2': {
40 | target: forwardUrl,
41 | secure: false,
42 | },
43 | '/login/oauth2': {
44 | target: forwardUrl,
45 | secure: false,
46 | },
47 | '/api/ws': {
48 | target: wsForwardUrl,
49 | ws: true,
50 | secure: false,
51 | },
52 | }
53 |
54 | export default PROXY_CONFIG
55 |
--------------------------------------------------------------------------------
/public/thingsboard.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/776488326/ThingsBoard-Vue3/ad50547a7ba92ad914600225733df92e8541bc5b/public/thingsboard.ico
--------------------------------------------------------------------------------
/scripts/preinstall.js:
--------------------------------------------------------------------------------
1 | if (!/yarn/.test(process.env.npm_execpath || '')) {
2 | console.warn(
3 | `\u001b[33mThis repository must using yarn as the package manager ` +
4 | ` for scripts to work properly.\u001b[39m\n`,
5 | )
6 | process.exit(1)
7 | }
8 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
14 |
--------------------------------------------------------------------------------
/src/api/alarm/index.ts:
--------------------------------------------------------------------------------
1 | import { alarms_url } from '../api_url'
2 | import http from '@/utils/http.ts'
3 | import type { AlarmQuery, Alarm } from './type'
4 |
5 | export async function getAlarms(params: AlarmQuery) {
6 | let url: string = Object.entries(params).reduce((prev, cur) => {
7 | return prev + `${cur[0]}=${cur[1]}&`
8 | }, `${alarms_url}?`)
9 | let result: Alarm[] = await http.get(url)
10 | return result
11 | }
12 |
--------------------------------------------------------------------------------
/src/api/alarm/type.ts:
--------------------------------------------------------------------------------
1 | // pageSize: 10
2 | // page: 0
3 | // sortProperty: createdTime
4 | // sortOrder: DESC
5 | // statusList: ACTIVE,CLEARED
6 | // severityList: MAJOR
7 | // assigneeId: 5c7757e0-efce-11ed-906b-d778012ede74
8 |
9 | export interface AlarmQuery {
10 | pageSize: number
11 | page: number
12 | sortProperty?: string
13 | sortOrder?: 'DESC' | 'ASC'
14 | statusList?: string
15 | severityList?: string
16 | assigneeId?: string
17 | typeList?: string
18 | }
19 |
20 | export interface Alarm {
21 | createdTime: string
22 | name: string
23 | type: string
24 | severity: 'danger' | 'important' | 'secondary' | 'alarm' | 'uncertain'
25 | assignee: string
26 | status: 'actived' | 'cleared' | 'confirmed' | 'unconfirm'
27 | }
28 |
--------------------------------------------------------------------------------
/src/api/api_url.ts:
--------------------------------------------------------------------------------
1 | export const login_url = '/auth/login'
2 | export const sign_up_url = '/noauth/signup'
3 | export const logout_url = '/auth/logout'
4 | export const alarms_url = '/alarms'
5 |
--------------------------------------------------------------------------------
/src/api/common_type.ts:
--------------------------------------------------------------------------------
1 | export interface Success {
2 | code: Number
3 | data: Object | null
4 | message: String
5 | }
6 |
7 | export interface Fail {
8 | code: Number
9 | data?: Object | null
10 | message: String
11 | }
12 |
--------------------------------------------------------------------------------
/src/api/index.ts:
--------------------------------------------------------------------------------
1 | export * from './user/login'
2 |
--------------------------------------------------------------------------------
/src/api/user/login.ts:
--------------------------------------------------------------------------------
1 | import http from '@/utils/http.ts'
2 | import { login_url, sign_up_url } from '../api_url'
3 | import type { UserInfo, Counter } from './type'
4 |
5 | export async function requestLogin(params: UserInfo) {
6 | return await http.post(login_url, params)
7 | }
8 |
9 | export async function requestSignUp(params: Counter) {
10 | return await http.post(sign_up_url, params)
11 | }
12 |
--------------------------------------------------------------------------------
/src/api/user/logout.ts:
--------------------------------------------------------------------------------
1 | import http from '@/utils/http.ts'
2 | import { logout_url } from '../api_url'
3 | import type { Success, Fail } from '@/api/common_type.ts'
4 | export async function requestLogout(): Promise {
5 | return await http.get(logout_url)
6 | }
7 |
--------------------------------------------------------------------------------
/src/api/user/type.ts:
--------------------------------------------------------------------------------
1 | export interface Counter {
2 | firstName: String
3 | lastName: String
4 | email: String
5 | password: String
6 | }
7 |
8 | export interface UserInfo {
9 | userName: String
10 | password: String
11 | }
12 |
--------------------------------------------------------------------------------
/src/assets/icons/advanced.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/alarm.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/api.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/asset.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/assetconfig.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/auditlog.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/bell.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/config.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/dashboard.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/device.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/deviceconfig.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/edgemanage.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/entity.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/entitys.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/fullscreen.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/home.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/instances.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/more.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/notification.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/offscreen.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/ota.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/resource.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/resources.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/rulechain.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/rulechaintemplete.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/secure.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/setting.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/user.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/version.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/widget.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/component.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.vue' {
2 | import { DefineComponent } from 'vue'
3 | const component: DefineComponent<{}, {}, any>
4 | export default component
5 | }
6 |
--------------------------------------------------------------------------------
/src/components/common_table/Table.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
46 |
47 |
55 |
--------------------------------------------------------------------------------
/src/components/common_table/TableHeader.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
11 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
57 |
58 |
89 |
--------------------------------------------------------------------------------
/src/components/common_table/TablePager.vue:
--------------------------------------------------------------------------------
1 |
2 |
15 |
16 |
17 |
48 |
49 |
54 |
--------------------------------------------------------------------------------
/src/components/common_table/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
26 |
29 |
30 |
31 |
32 |
59 |
60 |
82 |
--------------------------------------------------------------------------------
/src/components/fade_transition/index.vue:
--------------------------------------------------------------------------------
1 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
50 |
--------------------------------------------------------------------------------
/src/components/index.ts:
--------------------------------------------------------------------------------
1 | import SvgIcon from './svg_icon/index.vue'
2 | const globalComponents = {
3 | SvgIcon,
4 | }
5 | export default {
6 | install(app: any) {
7 | Object.entries(globalComponents).forEach((item) => {
8 | app.component(item[0], item[1])
9 | })
10 | },
11 | }
12 |
--------------------------------------------------------------------------------
/src/components/side_bar_menu/index.vue:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
22 |
23 |
24 |
25 |
32 |  
33 | {{ route.meta.title }}
34 |
35 |
40 |
47 |  
48 | {{ subroute.name }}
49 |
50 |
51 |
52 |
59 |  
60 | {{ route.name }}
61 |
62 |
63 |
64 |
65 |
66 |
72 |
--------------------------------------------------------------------------------
/src/components/svg_icon/index.vue:
--------------------------------------------------------------------------------
1 |
28 |
29 |
30 |
33 |
34 |
--------------------------------------------------------------------------------
/src/components/top_breadcrumb/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
15 |  
16 | {{ item.meta.title }}
17 |
18 |
19 |
20 |
21 |
22 |
35 |
--------------------------------------------------------------------------------
/src/layouts/LayoutAside.vue:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
46 |
--------------------------------------------------------------------------------
/src/layouts/LayoutHeader.vue:
--------------------------------------------------------------------------------
1 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
57 |
66 |
72 |
73 |
81 |
82 | {{ useStore.user_message.userName }}
83 |
84 |
85 |
86 |
92 |
93 |
94 | 属性
95 | 安全
96 |
97 | 注销
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
135 |
--------------------------------------------------------------------------------
/src/layouts/LayoutMain.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/layouts/index.vue:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
48 |
--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue'
2 | import App from './App.vue'
3 | import * as ElementPlusIconsVue from '@element-plus/icons-vue'
4 | //@ts-ignore
5 | import 'virtual:svg-icons-register'
6 | import globalComponentsRegistry from '@/components/index.ts'
7 | import store from '@/stores/index.ts'
8 | import router from '@/router/index.ts'
9 | import 'virtual:svg-icons-register'
10 | import '@/styles/reset.scss'
11 |
12 | const app = createApp(App)
13 | app.config.errorHandler = (err) => {
14 | // 自定义全局未捕获错误处理
15 | console.log(err)
16 | }
17 | for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
18 | app.component(key, component)
19 | }
20 | app.use(store)
21 | app.use(globalComponentsRegistry)
22 | app.use(router)
23 | app.mount('#app')
24 |
--------------------------------------------------------------------------------
/src/nprogress.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'nprogress'
2 |
--------------------------------------------------------------------------------
/src/router/index.ts:
--------------------------------------------------------------------------------
1 | import { createRouter, createWebHashHistory } from 'vue-router'
2 | import routes from './routes'
3 | import nprogress from 'nprogress'
4 | import 'nprogress/nprogress.css'
5 | const router = createRouter({
6 | history: createWebHashHistory(),
7 | routes: routes,
8 | })
9 |
10 | router.beforeEach((to) => {
11 | nprogress.start()
12 | const isAuth = JSON.parse(localStorage.getItem('isAuthenticated') || 'false')
13 | console.log('isAuth', isAuth)
14 | if (!isAuth && to.name !== 'Login') {
15 | console.log('redirect')
16 | return {
17 | name: 'Login',
18 | }
19 | }
20 | })
21 | router.afterEach((to) => {
22 | nprogress.done()
23 | document.title = `ThingsBoard | ${to.meta.title}`
24 | })
25 |
26 | export default router
27 |
--------------------------------------------------------------------------------
/src/router/routes.ts:
--------------------------------------------------------------------------------
1 | import 'vue-router'
2 | declare module 'vue-router' {
3 | interface RouteMeta {
4 | authorization: Array
5 | title: String
6 | }
7 | }
8 | type To = {
9 | meta: {
10 | isShow: Boolean
11 | }
12 | }
13 | type From = {
14 | name: String
15 | }
16 |
17 | import children from './dynamicRoutes.ts'
18 | import type { RouteRecordRaw } from 'vue-router'
19 | export default [
20 | {
21 | path: '/',
22 | component: () => import('@/layouts/index.vue'),
23 | name: 'Layout',
24 | redirect: '/home',
25 | meta: {
26 | authorization: ['Admin', 'User', 'Tenant'],
27 | isShow: false,
28 | },
29 | children,
30 | beforeEnter: (to: To, from: From) => {
31 | if (from.name === 'Login') {
32 | to.meta.isShow = true
33 | }
34 | },
35 | },
36 | {
37 | path: '/404',
38 | component: () => import('@/views/404/index.vue'),
39 | name: 'NotFound',
40 | meta: {
41 | authorization: ['Admin', 'User', 'Tenant'],
42 | },
43 | },
44 | {
45 | path: '/login',
46 | component: () => import('@/views/login/index.vue'),
47 | name: 'Login',
48 | meta: {
49 | authorization: ['Admin', 'User', 'Tenant'],
50 | },
51 | },
52 | {
53 | path: '/:notFound(.*)',
54 | redirect: '/404',
55 | meta: {
56 | authorization: ['Admin', 'User', 'Tenant'],
57 | },
58 | },
59 | ] as RouteRecordRaw[]
60 |
--------------------------------------------------------------------------------
/src/stores/alarm.ts:
--------------------------------------------------------------------------------
1 | import { defineStore } from 'pinia'
2 | export const useAlarmDataStore = defineStore('alarmData', () => {})
3 |
--------------------------------------------------------------------------------
/src/stores/index.ts:
--------------------------------------------------------------------------------
1 | import { createPinia } from 'pinia'
2 |
3 | export default createPinia()
4 |
--------------------------------------------------------------------------------
/src/stores/user.ts:
--------------------------------------------------------------------------------
1 | import { defineStore } from 'pinia'
2 | import { reactive } from 'vue'
3 | import type { UserInfo, Counter } from '@/api/user/type'
4 | import { requestLogin, requestSignUp } from '@/api/index.ts'
5 | import type { Success, Fail } from '@/api/common_type'
6 | export const userMessageStore = defineStore('userMessage', () => {
7 | // computed 是 getters
8 | // function 是 actions
9 | // ref 是 state
10 | interface UserMessage {
11 | userName: String
12 | password: String
13 | isAuthenticated: Boolean
14 | }
15 | const { userName, password } = JSON.parse(
16 | localStorage.getItem('userInfo') || '{}',
17 | )
18 | const isAuthenticated = JSON.parse(
19 | localStorage.getItem('isAuthenticated') || 'false',
20 | )
21 | const user_message: UserMessage = reactive({
22 | userName,
23 | password,
24 | isAuthenticated,
25 | })
26 |
27 | async function userLogin(data: UserInfo) {
28 | const res: Success | Fail | any = await requestLogin(data)
29 |
30 | if (res) {
31 | user_message.userName = res.data.userName
32 | user_message.password = res.data.password
33 | user_message.isAuthenticated = !!res.data.isAuthenticated
34 | } else {
35 | console.log('userLogin: ', res)
36 | }
37 | return res
38 | }
39 | async function userRegistry(data: Counter) {
40 | const res: Success | Fail | any = await requestSignUp(data)
41 |
42 | // 以下是正常的注册流程
43 | if (res) {
44 | user_message.userName = res.data.userName
45 | user_message.password = res.data.password
46 | } else {
47 | console.log('userRegistry: ', res)
48 | }
49 | return res
50 | }
51 | return {
52 | user_message,
53 | userRegistry,
54 | userLogin,
55 | }
56 | })
57 |
--------------------------------------------------------------------------------
/src/styles/index.scss:
--------------------------------------------------------------------------------
1 | @forward 'element-plus/theme-chalk/src/common/var.scss' with (
2 | $colors:(
3 | 'primary': (
4 | // 'base': #305680
5 | )
6 | ),
7 | $border-color:(
8 | '': #305680,
9 | 'light': #2e537b,
10 | 'lighter': #678bb1,
11 | 'extra-light': #86b7eb,
12 | 'dark': #ff6433,
13 | 'darker': #ac6854,
14 | ),
15 | $bg-color: (
16 | '': #ffffff,
17 | 'page': #eee,
18 | 'overlay': #ffffff,
19 | )
20 | );
21 |
22 | // 全局scss变量
23 | $bg-color: #eee;
24 | $page-color: #fff;
25 | $theme-color: #305680;
26 | $theme-light-color: #2e537b;
27 | $second-color: #ff6433;
28 | $second-light-color: #f79a7e;
29 | $font-color: #fff;
30 | $border-radius: 8px;
31 | $half-border-radius: 4px;
32 | $space: 16px;
33 | $half-space: 8px;
34 | $sideBar-width: 250px;
35 | $header-height: 64px;
--------------------------------------------------------------------------------
/src/styles/reset.scss:
--------------------------------------------------------------------------------
1 | *,
2 | *:after,
3 | *:before {
4 | box-sizing: border-box;
5 |
6 | outline: none;
7 | }
8 |
9 | html,
10 | body,
11 | div,
12 | span,
13 | applet,
14 | object,
15 | iframe,
16 | h1,
17 | h2,
18 | h3,
19 | h4,
20 | h5,
21 | h6,
22 | p,
23 | blockquote,
24 | pre,
25 | a,
26 | abbr,
27 | acronym,
28 | address,
29 | big,
30 | cite,
31 | code,
32 | del,
33 | dfn,
34 | em,
35 | img,
36 | ins,
37 | kbd,
38 | q,
39 | s,
40 | samp,
41 | small,
42 | strike,
43 | strong,
44 | sub,
45 | sup,
46 | tt,
47 | var,
48 | b,
49 | u,
50 | i,
51 | center,
52 | dl,
53 | dt,
54 | dd,
55 | ol,
56 | ul,
57 | li,
58 | fieldset,
59 | form,
60 | label,
61 | legend,
62 | table,
63 | caption,
64 | tbody,
65 | tfoot,
66 | thead,
67 | tr,
68 | th,
69 | td,
70 | article,
71 | aside,
72 | canvas,
73 | details,
74 | embed,
75 | figure,
76 | figcaption,
77 | footer,
78 | header,
79 | hgroup,
80 | menu,
81 | nav,
82 | output,
83 | ruby,
84 | section,
85 | summary,
86 | time,
87 | mark,
88 | audio,
89 | video {
90 | font: inherit;
91 | font-size: 100%;
92 |
93 | margin: 0;
94 | padding: 0;
95 |
96 | vertical-align: baseline;
97 |
98 | border: 0;
99 | }
100 |
101 | article,
102 | aside,
103 | details,
104 | figcaption,
105 | figure,
106 | footer,
107 | header,
108 | hgroup,
109 | menu,
110 | nav,
111 | section {
112 | display: block;
113 | }
114 |
115 | body {
116 | line-height: 1;
117 | }
118 |
119 | ol,
120 | ul {
121 | list-style: none;
122 | }
123 |
124 | blockquote,
125 | q {
126 | quotes: none;
127 | &:before,
128 | &:after {
129 | content: '';
130 | content: none;
131 | }
132 | }
133 |
134 | sub,
135 | sup {
136 | font-size: 75%;
137 | line-height: 0;
138 |
139 | position: relative;
140 |
141 | vertical-align: baseline;
142 | }
143 | sup {
144 | top: -0.5em;
145 | }
146 | sub {
147 | bottom: -0.25em;
148 | }
149 |
150 | table {
151 | border-spacing: 0;
152 | border-collapse: collapse;
153 | }
154 |
155 | input,
156 | textarea,
157 | button {
158 | font-family: inhert;
159 | font-size: inherit;
160 |
161 | color: inherit;
162 | }
163 |
164 | select {
165 | text-indent: 0.01px;
166 | text-overflow: '';
167 |
168 | border: 0;
169 | border-radius: 0;
170 |
171 | -webkit-appearance: none;
172 | -moz-appearance: none;
173 | }
174 | select::-ms-expand {
175 | display: none;
176 | }
177 |
178 | code,
179 | pre {
180 | font-family: monospace, monospace;
181 | font-size: 1em;
182 | }
183 |
--------------------------------------------------------------------------------
/src/utils/http.ts:
--------------------------------------------------------------------------------
1 | import axios from 'axios'
2 | import { ElMessage } from 'element-plus'
3 | let http = axios.create({
4 | baseURL: import.meta.env.VITE_BASE_API_PREFIX,
5 | timeout: 5000,
6 | })
7 |
8 | function handleError(err: any, status: Number) {
9 | let message = ''
10 |
11 | switch (status) {
12 | case 400:
13 | message = '请求参数不正确'
14 | break
15 | case 401:
16 | message = 'TOKEN过期,或账号密码错误,请重新登录获取'
17 | break
18 | case 403:
19 | message = '账号密码权限不足,请联系管理员'
20 | break
21 | case 404:
22 | message = '请求地址不存在,请确认后重试'
23 | break
24 | case 500:
25 | message = '服务器异常,请稍后重试'
26 | break
27 | default:
28 | message = '网络异常'
29 | break
30 | }
31 | ElMessage({
32 | message: err || message,
33 | type: 'error',
34 | })
35 | return false
36 | }
37 |
38 | http.interceptors.request.use((config) => {
39 | return config
40 | })
41 |
42 | http.interceptors.response.use(
43 | (resp) => {
44 | if (resp.data.code !== 200) {
45 | return handleError(resp.data.message, resp.data.code)
46 | }
47 | return resp.data
48 | },
49 | (err) => {
50 | return handleError(err, err.response.status)
51 | },
52 | )
53 |
54 | export default http
55 |
--------------------------------------------------------------------------------
/src/views/404/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
--------------------------------------------------------------------------------
/src/views/advanced_feature/ota/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
68 |
69 |
85 |
--------------------------------------------------------------------------------
/src/views/advanced_feature/version_control/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
14 |
--------------------------------------------------------------------------------
/src/views/alarm/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Filter: 激活
9 |
10 |
11 |
12 |
13 | For All Time
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
71 |
72 |
80 |
--------------------------------------------------------------------------------
/src/views/api_statistics/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
14 |
--------------------------------------------------------------------------------
/src/views/config/asset_config/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Device Filter
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
55 |
56 |
72 |
--------------------------------------------------------------------------------
/src/views/config/device_config/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Device Filter
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
64 |
65 |
81 |
--------------------------------------------------------------------------------
/src/views/dashboard/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
47 |
48 |
56 |
--------------------------------------------------------------------------------
/src/views/edge_manage/instances/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
56 |
57 |
73 |
--------------------------------------------------------------------------------
/src/views/edge_manage/rulechain_template/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
46 |
47 |
63 |
--------------------------------------------------------------------------------
/src/views/entity/asset/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Device Filter
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
64 |
65 |
81 |
--------------------------------------------------------------------------------
/src/views/entity/device/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Device Filter
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
72 |
73 |
89 |
--------------------------------------------------------------------------------
/src/views/entity/entity_view/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
52 |
53 |
69 |
--------------------------------------------------------------------------------
/src/views/home/index.vue:
--------------------------------------------------------------------------------
1 |
70 |
71 |
72 |
73 |
80 |
83 |
84 |
85 |
86 |
145 |
--------------------------------------------------------------------------------
/src/views/home/max_card/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 | kooriookami
10 | 18100000000
11 |
12 | Suzhou
13 |
14 |
15 | School
16 |
17 |
18 | No.1188, Wuzhong Avenue, Wuzhong District, Suzhou, Jiangsu Province
19 |
20 |
21 |
22 |
28 | kooriookami
29 | 18100000000
30 |
31 | Suzhou
32 |
33 |
34 | School
35 |
36 |
37 | No.1188, Wuzhong Avenue, Wuzhong District, Suzhou, Jiangsu Province
38 |
39 |
40 |
47 | kooriookami
48 | 18100000000
49 |
50 | Suzhou
51 |
52 |
53 | School
54 |
55 |
56 | No.1188, Wuzhong Avenue, Wuzhong District, Suzhou, Jiangsu Province
57 |
58 |
59 |
60 |
66 | kooriookami
67 | 18100000000
68 |
69 | Suzhou
70 |
71 |
72 | School
73 |
74 |
75 | No.1188, Wuzhong Avenue, Wuzhong District, Suzhou, Jiangsu Province
76 |
77 |
78 |
85 | kooriookami
86 | 18100000000
87 |
88 | Suzhou
89 |
90 |
91 | School
92 |
93 |
94 | No.1188, Wuzhong Avenue, Wuzhong District, Suzhou, Jiangsu Province
95 |
96 |
97 |
98 |
104 | kooriookami
105 | 18100000000
106 |
107 | Suzhou
108 |
109 |
110 | School
111 |
112 |
113 | No.1188, Wuzhong Avenue, Wuzhong District, Suzhou, Jiangsu Province
114 |
115 |
116 |
117 |
118 |
119 |
124 |
--------------------------------------------------------------------------------
/src/views/home/mini_card/index.vue:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
25 |
26 |
27 |
28 |
70 |
--------------------------------------------------------------------------------
/src/views/notification_center/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
14 |
--------------------------------------------------------------------------------
/src/views/resources/resource/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
46 |
47 |
63 |
--------------------------------------------------------------------------------
/src/views/resources/widget/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
43 |
44 |
60 |
--------------------------------------------------------------------------------
/src/views/rulechain/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
48 |
49 |
65 |
--------------------------------------------------------------------------------
/src/views/secure/audit_log/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 最后一天
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
58 |
59 |
75 |
--------------------------------------------------------------------------------
/src/views/settings/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
14 |
--------------------------------------------------------------------------------
/src/views/user/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Device Filter
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
59 |
60 |
76 |
--------------------------------------------------------------------------------
/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "plugins": [
4 | {
5 | "name": "vue-tsc",
6 | "transform": "vue-tsc"
7 | }
8 | ],
9 | "types": ["@digitalacorn/vite-plugin-svg-icons/client"],
10 | "baseUrl": "./",
11 | "paths": {
12 | "@/*": ["src/*"]
13 | },
14 | "target": "ES2020",
15 | "useDefineForClassFields": true,
16 | "module": "ESNext",
17 | "lib": ["ES2020", "DOM", "DOM.Iterable"],
18 | "skipLibCheck": true,
19 | /* Bundler mode */
20 | "moduleResolution": "node",
21 | "allowImportingTsExtensions": true,
22 | "resolveJsonModule": true,
23 | "isolatedModules": true,
24 | "noEmit": true,
25 | "jsx": "preserve",
26 | /* Linting */
27 | "strict": true,
28 | "noUnusedLocals": true,
29 | "noUnusedParameters": true,
30 | "noFallthroughCasesInSwitch": true
31 | },
32 | "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
33 | "references": [
34 | {
35 | "path": "./tsconfig.node.json"
36 | }
37 | ]
38 | }
39 |
--------------------------------------------------------------------------------
/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "composite": true,
4 | "skipLibCheck": true,
5 | "module": "ESNext",
6 | "moduleResolution": "node",
7 | "allowSyntheticDefaultImports": true
8 | },
9 | "include": ["vite.config.ts", "proxy.conf.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/user_data.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "password": "admin",
4 | "email": "admin",
5 | "firstName": "feng",
6 | "lastName": "liang"
7 | },
8 | { "firstName": "1", "lastName": "1", "password": "1", "email": "1" },
9 | { "firstName": "2", "lastName": "1", "password": "1", "email": "2" },
10 | { "firstName": "2", "lastName": "1", "password": "1", "email": "3" },
11 | {
12 | "firstName": "feng",
13 | "lastName": "liang",
14 | "password": "131452",
15 | "email": "776488326@qq.com"
16 | },
17 | {
18 | "firstName": "test",
19 | "lastName": "01",
20 | "password": "123",
21 | "email": "776488326@qq.com001"
22 | },
23 | { "firstName": "a", "lastName": "b", "password": "321", "email": "123" }
24 | ]
25 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { UserConfigExport, ConfigEnv } from 'vite'
2 | import vue from '@vitejs/plugin-vue'
3 | import { createSvgIconsPlugin } from '@digitalacorn/vite-plugin-svg-icons'
4 | import { viteMockServe } from 'vite-plugin-mock'
5 | import path from 'path'
6 | import PROXY_CONFIG from './proxy.conf'
7 | import ElementPlus from 'unplugin-element-plus/vite'
8 | import AutoImport from 'unplugin-auto-import/vite'
9 | import Components from 'unplugin-vue-components/vite'
10 | import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
11 | // https://vitejs.dev/config/
12 | export default ({ command }: ConfigEnv): UserConfigExport => {
13 | return {
14 | build: {
15 | sourcemap: true,
16 | },
17 | server: {
18 | hmr: true,
19 | proxy: PROXY_CONFIG,
20 | },
21 | plugins: [
22 | vue(),
23 | createSvgIconsPlugin({
24 | // Specify the icon folder to be cached
25 | iconDirs: [path.resolve(process.cwd(), './src/assets/icons')],
26 | // Specify symbolId format
27 | symbolId: 'icon-[name]',
28 | replaceStrokeWithCurrentColor: false /* */,
29 | }),
30 | viteMockServe({
31 | mockPath: 'mock',
32 | enable: false,
33 | }),
34 | ElementPlus({
35 | defaultLocale: 'zh-cn',
36 | useSource: true,
37 | }),
38 | AutoImport({
39 | resolvers: [ElementPlusResolver()],
40 | }),
41 | Components({
42 | resolvers: [ElementPlusResolver()],
43 | }),
44 | ],
45 | css: {
46 | preprocessorOptions: {
47 | scss: {
48 | additionalData: `@use "src/styles/index.scss" as *;`,
49 | },
50 | },
51 | },
52 | resolve: {
53 | alias: {
54 | '@': 'src',
55 | },
56 | extensions: [
57 | '.mjs',
58 | '.js',
59 | '.mts',
60 | '.ts',
61 | '.jsx',
62 | '.tsx',
63 | '.json',
64 | '.vue',
65 | ],
66 | },
67 | }
68 | }
69 |
--------------------------------------------------------------------------------